Android菜单
一、 Menu常规菜单
Activity.onCreateOptionsMenu(Menumenu){
Super.onCreateOptionsMenu(menu);
Menu.add(….)
…….
Return true;//true显示文菜单,false不显示
}
二、 ContextMenu 上下文菜单
尽管上下文菜单归视图所有,但填充上下文菜单的方法包含在Activity类中:
Activity.onCreateContextMenu()
如果希望特定视图拥有上下文菜单,必须针对拥有上下文菜单这一目的,专门向活动注册该视图,
(1)在活动Activity的onCreate()方法中为上下文菜单注册视图,如:
registerForContextMenu(textview1)
(2)onCreateContextMenu()填充上下文菜单
Publicvoid onCreateContextMenu(ContexMenu menu,View v,ContextMenuInfo menuinfo)
3)响应上下文菜单单击。
PublicBoolean onCreateContextItemSelected(MenuItem item)
区别:
所有关系:Activity 拥有对Menu菜单的所有权,而ContextMenu的所有权归View视图所有。
Activity只有拥有一个选项菜单,但可以有多个上下文菜单而视图可以拥有,活动Activity的上下文菜单数量可以与其所包含的视图一样多。
.使用菜单响应数据变化
onPrepareOptionMenu根据屏幕内容动态改变,创建动态菜单。
三、交替菜单
交替菜单支持Android上多个应用程序相互使用。
四.利用XML菜单资源文件
XML资源菜单填充:
Public boolean onCreateOptionsMenu(Menumenu){
Super.onCreateOptionsMenu(menu);
MenuInflaterinflater=getMenuInflater();
Inflater.inflater.(R.menu.my_menu,menu);
…….
Return true;//true显示文菜单,false不显示
}
其它XML菜单标记:
1、 组类别标记
<groupandroid:id=”…” android:menuCategory=”secondary”>
2.可选择行为标记
<groupandroid:id=”…” android:checkableBehavior=”none”>
3.模拟子菜单的标记
<itemandroid:title=”…”
<menu <item….> </menu>
</item>
4. 菜单图标标记
<item android:id=”…” android:icon=”@drawable/some-file”/>
5. 菜单启用-禁用标记
<item android:id=”…” android:enable=”false”/>
6.快捷键
<itemandroid:id=”…” android:alphabeticShortcut=”a” />
7. 菜单的可见性
<itemandroid:id=”…” android:visible=”true” />