禁用“活动”中未指定的选项菜单

时间:2013-06-07 21:22:48

标签: android android-intent

我是一个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;
}

}

1 个答案:

答案 0 :(得分:11)

从活动中删除onCreateOptionsMenu(Menu menu)ShowSettingsActivityEditSettingsActivity),您不需要选项菜单。