Android 处理单击图标菜单项
我发现可以通过点击图标或实现Android 处理单击图标菜单项,android,menu,Android,Menu,我发现可以通过点击图标或实现 onOptionsItemSelected 在活动中,或通过使用 onMenuItemClickListener 就像在按钮上单击onclick listener一样。什么时候最好使用第一种方法,什么时候使用第二种方法? 因为在我看来,使用外部侦听器会使代码更加模块化,但会创建一个新类,但使用第一种方法不会创建新类,但会使代码更加模块化…如果您的目标是API 14或更高版本(ICS或更高版本),则可以实现一个新类。如果这不是一个选项,那么您可以实现一个基本活动,
onOptionsItemSelected
在活动中,或通过使用
onMenuItemClickListener
就像在按钮上单击onclick listener一样。什么时候最好使用第一种方法,什么时候使用第二种方法?
因为在我看来,使用外部侦听器会使代码更加模块化,但会创建一个新类,但使用第一种方法不会创建新类,但会使代码更加模块化…如果您的目标是API 14或更高版本(ICS或更高版本),则可以实现一个新类。如果这不是一个选项,那么您可以实现一个基本活动,该活动将始终填充菜单并使用
onOptionsItemSelected
处理任何菜单单击。这是一种在所有活动中实现“关于”或“设置”菜单项的好方法。除了下面概述的用例之外,还有其他用例,但我将介绍经常出现的一般用例
onOptionsItemSelected
如果你使用<代码>片段 s,你可能想使用<代码> OnopyStisteMeult>代码>,并考虑将菜单项添加到动作条中,如中所描述的方式。
这描述的是在片段中实现的。要实现这一点,您必须调用onCreate
protected void onCreate(Bundle savedInstanceState) {
this.setHasOptionsMenu(true);
}
设置此选项实际上会使活动
调用onCreateOptions菜单
,从而允许您添加菜单项
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
// add items corresponding to this Fragment
menu.add(...);
return true;
}
我建议这样做的原因是,它允许您将更多的菜单处理代码放入片段
,而不是活动
,以确定要调用哪个片段
,等等
在这种情况下,单击菜单项将调用我建议的片段内的onoptionItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.my_id1:
dothing1();
return true;
case R.id.my_id2:
dotghing2();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
这是一个冗长的答案,但这是处理片段中的菜单单击的方法
onMenuItemClickListener
在onMenuItemClickListener
的情况下,当您不想使用上面的pre-ready方法并实现自己的方法时,可以使用此方法
我的意思是实现OnMenuItemClickListener
并在接口中生成方法。然后,指定菜单调用实现此功能的活动
,其中,作为上述选项,根据活动
到片段
关系的预准备实现,假定要使用的活动