我是一个Android菜鸟。我用选项菜单编写了一个主要活动。每个选项都会打开自己的活动。当我单击每个子活动中的选项菜单时,我会得到一个“设置”菜单。如何删除或禁用此选项,以便只有主活动具有选项菜单?
我尝试过:在每个子活动中,我都有一个菜单项的实例并禁用它。
主要活动
首先执行代码public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
//addPreferencesFromResource(R.xml.preferences);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.main, menu);
menu.add(Menu.NONE, 0, 0, "Show current settings");
menu.add(Menu.NONE, 1, 0, "Edit current settings");
return true;
}
/*
* (non-Javadoc)
*
* @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 0:
startActivity(new Intent(this, ShowSettingsActivity.class));
return true;
case 1:
startActivity(new Intent(this, EditSettingsActivity.class));
return true;
}
return false;
}
}
用于次要活动
public class EditSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_edit_settings);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.edit_settings, menu);
MenuItem mi = menu.findItem(R.menu.edit_settings);
mi.setEnabled(false);
return true;
}
}
答案 0 :(得分:11)
从活动中删除onCreateOptionsMenu(Menu menu)
(ShowSettingsActivity
和
EditSettingsActivity
),您不需要选项菜单。