今天为安卓应用增加了菜单,放了三个选项,都是关于版本和版权信息的,但是点击任何一项都没反应:
看了看代码,onOptionsItemSelected 也没什么问题,那原因在哪呢?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.version_info:
//...
return true;
case R.id.copyright_notice:
//...
return true;
case R.id.app_update:
//...
return true;
default:
return super.onOptionsItemSelected(item);
}
}
想起了前一阵子一个发现的一个类似的问题:Fragment 中的 onCreateOptionsMenu 方法不执行,
点击打开链接
得到了启发,于是查了查这个类的代码,果然没有调用
setHasOptionsMenu(true) ,于是,在onCreate()方法中进行调用:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}然后重新运行,点击菜单就能正常响应了:
总结一下,关于应用菜单的一些问题,多半都是由于缺乏一些配置文件或者代码层面的设置造成的,可以从这个反面考虑入手解决。