android的选项菜单,Android界面菜单(2)—选项菜单

选项菜单

Android 4.0 系统中,Activity在创建时便会调用 onCreateOptionMenu() 函数初始化自身的菜单系统。在Activity的整个生命周期中,选项菜单是一直被重复利用的,直到 Activity被销毁。

Android程序的菜单可以在代码中动态生成,也可以使用XML文件制作菜单资源,然后通过 inflate() 函数映射到程序代码中。

1.使用 /res/menu/main.xml 初始化 Activity 的菜单

(1)/res/menu/main.xml

xmlns:tools="http://schemas.android.com/tools"

tools:context="com.jhincheung.satomi.MainActivity" >

android:id = "@+id/main_menu_1"

android:icon = "@drawable/pic_01"

android:title = "File"/>

android:id = "@+id/main_menu_2"

android:icon = "@drawable/pic_02"

android:title = "Edit"/>

android:id = "@+id/main_menu_3"

android:icon = "@drawable/pic_03"

android:title = "Source"/>

说明:使用XML文件描述菜单

(2)MainActivity.java

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

说明:onCreateOptionMenu() 初始化菜单

@Override

public boolean onOptionsItemSelected(MenuItem item) {

TextView label = (TextView)findViewById(R.id.textView_1);

switch(item.getItemId()){

case R.id.main_menu_1:

label.setText("File-ID:"+item.getItemId());

return true;

case R.id.main_menu_2:

label.setText("Edit-ID:"+item.getItemId());

return true;

case R.id.main_menu_3:

label.setText("Source-ID:"+item.getItemId());

return true;

default:return false;

}

}

说明:

onOptionsItemSelected() 一般用于放置菜单选择事件的响应代码

通过 getItemId() 获得 MenuItem 的ID

onOptionsItemSelected() 的返回值表示是否需求其他事件处理函数菜单选择事件进行处理,不需要选择 true,否则选择 false

示例程序:

cf9683c8a3a80753f04fea717a23d7f2.png

2.代码中动态生成菜单

MainActivity.java

final static int MENU_01 = Menu.FIRST;

final static int MENU_02 = Menu.FIRST+1;

final static int MENU_03 = Menu.FIRST+2;

@Override

public boolean onCreateOptionsMenu(Menu menu) {

//getMenuInflater().inflate(R.menu.main, menu);

menu.add(0,MENU_01,0,"添加好友").setIcon(R.drawable.pic_01);

menu.add(0,MENU_02,0,"扫一扫").setIcon(R.drawable.pic_02);

menu.add(0,MENU_03,0,"付款").setIcon(R.drawable.pic_03);

return true;

}

说明:

一般将 ID 定义为静态变量,并使用 Menu.FIRST 定义第一个菜单子项

之后的菜单项仅需在 Menu.FIRST 增加相应的数值即可

onCreateOptionMenu() 返回值为 true 则可显示在函数中设置的菜单

menu.add() 第 1 个参数 groupID 是组ID,用以批量的对菜单子项进行处理和排序

menu.add() 第 2个参数 itemID 是子项ID,是每一个菜单子项的唯一标识

menu.add() 第 3 个参数 order 是定义菜单子项在菜单中的排列顺序

menu.add() 第 4 个参数 title 是菜单子项所显示的标题

setIcon() 函数可以为菜单子项添加图标

示例程序

70c121889606dc4c50e7b6e2b8bca3cf.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值