OptionMenu
远古手机:OptionMenu在点击手机的menu键触发
现代手机:创建的OptionMenu默认是在标题栏的右边
Activity:onCreateOptionMenu(Menu menu)
显示OptionMenu的回调方法,在此方法中向menu中添加MenuItem
添加menuItem的两种方式:
1,纯编码方式:menu.add(...)
2,加载menu文件的方式:
MenuInflater.menuInflater=getMenuInflater();
menuInflate.inflate(R.menu.main_option,menu)
Activity:onOptionItemSelected(MenuItem item)
当选择某个菜单项的回调方法
例子:
纯编码方式:
//纯编码形式
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,1,0,"添加");
menu.add(0,2,0,"删除");
return super.onCreateOptionsMenu(menu);
}
加载menu文件方式:
这种方式要创建在res里menu文件(它是xml后缀的,选择menu文件,会自动生成文件加)
//加载menu文件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater=getMenuInflater();
menuInflater.inflate(R.menu.option_menu,menu);
return super.onCreateOptionsMenu(menu);
}
menu文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add" android:title="添加"></item>
<item android:id="@+id/delete" android:title="删除"></item>
</menu>
为OptionMenu设置点击监听:(直接写该方法)
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
//case R.id.add:
case 1:
Toast.makeText(this,"添加",Toast.LENGTH_SHORT).show();
break;
//case R.id.delete:
case 2:
Toast.makeText(this,"删除",Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
ContextMenu:上下文菜单
View.setOnCreateContextMenuListener(listener)(需要长按触发)
Activity.onCreateContextMenu(menu,view,menuInfo)
显示菜单的回调方法
Activity.onContextItemSelected(MenuItem item)
当选择某个菜单项的回调方法
方法什么和OptionMenu都一样,只不过名字换了,而且添加item的方式也相同