菜单没有显示在我的模拟器中.menu代码在home.java类,inflator usess菜单中实现,但没有在模拟器上显示。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater Inflater = getMenuInflater();
Inflater.inflate(R.layout.menu, menu);
return(super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.logout) {
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.remove("logged");
editor.commit();
finish();
}
return super.onOptionsItemSelected(item);
}
}
答案 0 :(得分:1)
正如Vipul Shah所说,你应该改变这一行:
Inflater.inflate(R.layout.menu, menu);
到
Inflater.inflate(R.menu.menu, menu);
之后 - 将您的menu.xml
替换为res/menu
而不是res/layout
。
然后你应该显然返回true而不是返回super方法的结果。 你的代码应该是这样的:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater Inflater = getMenuInflater();
Inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.logout :
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.remove("logged");
editor.commit();
finish();
return true;
default: return super.onOptionsItemSelected(item);
}
答案 1 :(得分:0)
更改此
Inflater.inflate(R.layout.menu, menu);
到此
Inflater.inflate(R.menu.menu, menu);
将menu.xml放在 res / menu 文件夹中。