我在所有活动文件中都有以下代码。我会为所有活动使用相同的菜单。这是代码。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
我没有在所有活动中复制此代码,而是使用以下代码创建了一个BaseActivity。
public class BaseActivity extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
现在所有的活动都在扩展BaseActivity,如下所示。
public class AddItemActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_item);
}
}
由于上述代码,菜单消失了。我做错了吗?
答案 0 :(得分:1)
更改以下行:
public class BaseActivity extends Activity
到下面
public class BaseActivity extends AppCompatActivity
我创建了一个可能你需要的简单项目。请在此处查看:https://github.com/briannl/OptionMenuExample