Android学习笔记之Menu

Android用户界面主要由View、Menu、对话框组成。


菜单Menu主要有三种,选择菜单(OptionsMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu)。
我们这里主要讲选择菜单(OptionsMenu)。
Android手机上有个Menu按键,当按下Menu键的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单。就是选  择菜单。
main.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="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Menu的学习"
    android:textSize="22px"
    />
</LinearLayout>

MenuActivity.java 代码部分
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MenuActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        }
    //创建menu,Activity调用onCreateOptionsMenu(Menu menu)方法,传一个实现Menu接口的menu对象,供使用。
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
   
    //menu.add()里面有四个参数依次是:
    //第一个,组别。
    //第二个,ID。是menu识别编号,供识别menu用的。很重要。
    //第三个,顺序。这个参数的大小决定菜单出现的先后顺序。顺序是参数由小到大,菜单从左到右,从上到下排列。一行最多三个。
    //第四个,显示文本。
   
    menu.add(0,Menu.FIRST,0,"添加").setIcon(android.R.drawable.ic_menu_add);
    menu.add(0,Menu.FIRST+1,1,"保存").setIcon(android.R.drawable.ic_menu_save);
    menu.add(0,Menu.FIRST+2,2,"发送").setIcon(android.R.drawable.ic_menu_send);
   
    menu.add(1,Menu.FIRST+3,3,"详细").setIcon(android.R.drawable.ic_menu_info_details);
    menu.add(1,Menu.FIRST+4,4,"删除").setIcon(android.R.drawable.ic_menu_delete);
    menu.add(1,Menu.FIRST+5,5,"帮助").setIcon(android.R.drawable.ic_menu_help);
    //只有返回True才会起作用。
    return true;
    }
    //菜单项选择事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
    case Menu.FIRST:
    Toast.makeText(this,"添加菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    case Menu.FIRST+1:
    Toast.makeText(this,"保存菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    case Menu.FIRST+2:
    Toast.makeText(this,"发送菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    case Menu.FIRST+3:
    Toast.makeText(this,"详细菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    case Menu.FIRST+4:
    Toast.makeText(this,"删除菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    case Menu.FIRST+5:
    Toast.makeText(this,"帮助菜单被点击了",Toast.LENGTH_SHORT).show();
    break;
    }
    return false;
    }
    //菜单被显示之前的事件
    @Override
    public boolean onPrepareOptionsMenu(Menu menu){
    Toast.makeText(this,"菜单被显示之前的事件,可以在这里调整菜单",Toast.LENGTH_LONG).show();
    return true;
    //必须返回True才能调用onCreateOptionsMenu(Menu menu)方法。
    }
   
    //选择菜单的关闭事件。
    //有三种关闭方式,menu按钮再被点击,back按钮被点击,用户选择另一个菜单项。
    @Override
    public void onOptionsMenuClosed(Menu menu){
    Toast.makeText(this,"菜单被关闭了",Toast.LENGTH_SHORT).show();
    }
}

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值