Android中菜单的使用时非常频繁的,能够达到很好的使用效果,其实他的实现方法非常简单,下面为大家讲解,首先看图:

JAVA代码:

package com.smart;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
public class SmartMenu extends Activity {
public static final int ITEM0=Menu.FIRST;//系统值
public static final int ITEM1=Menu.FIRST+1;
public static final int ITEM2=Menu.FIRST+2;
public static final int ITEM3=Menu.FIRST+3;
Button button1;
Button button2;
Button button3;
Button button4;
// private Menu menu;
// private Menu menu

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button1=(Button)findViewById(R.id.button1);
        button2=(Button)findViewById(R.id.button2);
        button3=(Button)findViewById(R.id.button3);
        button4=(Button)findViewById(R.id.button4);
        button1.setVisibility(View.INVISIBLE);
        button2.setVisibility(View.INVISIBLE);
        button3.setVisibility(View.INVISIBLE);
        button4.setVisibility(View.INVISIBLE);
//       
    }
   
   
    @Override
public boolean onCreateOptionsMenu(Menu menu) {
  super.onCreateOptionsMenu(menu);
  menu.add(0, ITEM0, 0,"显示button1");
  menu.add(0, ITEM1,0,"显示button2");
  menu.add(0, ITEM2,0,"新建");
  menu.add(0, ITEM3,0,"打开");
  menu.findItem(ITEM1);//可以设置按钮的背景
  return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
 
  switch (item.getItemId()) {
  case ITEM0:
   actionClickMenuItem1();
   break;
  case ITEM1:
   actionClickMenuItem2();
   break;
  case ITEM2:
   actionClickMenuItem3();
   break;
  case ITEM3:
   actionClickMenuItem4();
   break;
  }
 
  return super.onOptionsItemSelected(item);
}

//第一个事件的方法

private void actionClickMenuItem1(){
    setTitle("button1可见");
    button1.setVisibility(View.VISIBLE);//可见
    button2.setVisibility(View.INVISIBLE);//不可见
   
   }
   //第2个事件的方法
   private void actionClickMenuItem2(){
    setTitle("button2可见");
    button1.setVisibility(View.INVISIBLE);//不可见
    button2.setVisibility(View.VISIBLE);//可见
   
   }
   private void actionClickMenuItem3(){
    setTitle("button2可见");
    button1.setVisibility(View.INVISIBLE);//不可见
    button2.setVisibility(View.INVISIBLE);//不可见
    button3.setVisibility(View.VISIBLE);//可见
    button4.setVisibility(View.INVISIBLE);//不可见
  
   
   
  }
  
   private void actionClickMenuItem4(){
    setTitle("button2可见");
    button1.setVisibility(View.INVISIBLE);//不可见
    button2.setVisibility(View.INVISIBLE);//不可见
    button3.setVisibility(View.INVISIBLE);//不可见
    button4.setVisibility(View.VISIBLE);//可见
   
   }
   
}

XML布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
   
    <Button
    android:id="@+id/button1"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="我的菜单我做主_1"
    />
   
      <Button
    android:id="@+id/button2"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="我的菜单我做主_2"
    />
   
     <Button
    android:id="@+id/button3"
     android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="小子,给记住这代码"
    />
   
      <Button
    android:id="@+id/button4"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="哈哈,你欺负我呀,我就能记住"
    />
    
</LinearLayout>

转载于:https://www.cnblogs.com/zhwl/archive/2011/09/18/2180096.html

Android中menu详解(转)相关推荐

  1. android中getSystemService详解

    原文地址:android中getSystemService详解作者:邹斌 http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blo ...

  2. android 之Menu详解

    基本概念: 菜单:在应用程序中有很多类型的通用应用程序组件 A.选项菜单(OptionsMenu):当用户按手机上的菜单键时自动弹出的菜单 onCreateOptionsMenu(Menu menu) ...

  3. android广播intent原理,Android中BroadcastReceiver详解

    BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...

  4. android 静态注册wifi广播,Android中BroadcastReceiver详解

    BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...

  5. Android中Context详解

    给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service.BroadcastReceiver.Activity等 ...

  6. Android中LaunchMode详解

    越是做的时间越长,基础知识就忘的越干净,最近做一个项目中,发现启动的几个Activity居然重叠了,我ri--,再不回忆一下就要退出Android界了. 概念解释 Task Task叫做任务,这个简单 ...

  7. android asynctask 参数,Android中AsyncTask详解

    定义 AsyncTask是一个抽象类,在使用时需要继承该类,实现其抽象方法protected abstract Result doInBackground(Params... params).其主要作 ...

  8. [content-description] find_element_by_accessibility_id 在 android 中的详解

    出处:http://testerhome.com/topics/1034 最近 Appium 引入了一个新的 find element 方法:python client 为例 def find_ele ...

  9. android中界面滑动延伸,android中ViewPager详解--视图滑动、界面卡等效果 (三)

    GuideActivity.java引导界面: import java.util.ArrayList; import java.util.List; import android.app.Activi ...

最新文章

  1. js float 取精度
  2. debian 9系统安装配置iptables
  3. feign调用soap_Spring Cloud 组件 —— feign
  4. matlab的数学函数,matlab中常见数学函数的使用
  5. Linux下串口通信详解
  6. java学习笔记④MySql数据库--03/04 DQL查询
  7. 伴鱼DQC数据质量平台实践
  8. 前端酷炫效果参考_2020年大前端发展趋势
  9. hadoop 动态添加节点datanode及tasktracker
  10. nginx服务+LEMP搭建
  11. Windows系统修改Docker镜像下载地址
  12. 如何把照片裁剪成证件照指定尺寸比例?
  13. 学习基础的html代码知识(入门篇)
  14. Mybatis在xml文件中处理大于号小于号的方法
  15. Reapp 混合应用 - 帮助构建前所未所的强大应用(Reapp Hybrid apps - help you build powerful apps like never before)
  16. 商城源码+分销版+破j版+企业版+虚拟商品+第三方对接
  17. A/C加权的matlab实现
  18. 单元格的边框没有被显示出来
  19. 一个生成随机密码的WPF小程序
  20. java获取当前时间(年月日)

热门文章

  1. Mac Sublime Vim模式 方向键无法长按
  2. 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)
  3. [_CN] Eclipse精要与高级开发技术 note
  4. “staticMetaObject”: 不是“****”的成员
  5. 在oracle中通过connect by prior来实现递归查询!
  6. 一款炫酷Loading动画--载入成功
  7. 一次Linux磁盘损坏导致系统不可用恢复实例
  8. 挺水的一门课,发现全系都过了,就自己挂了,这是一种什么样的感觉呢?
  9. Qt学习之路(24): QPainter
  10. 【哲学】罗素《哲学问题》,把我从怀疑派拉回来,本能信仰