1

我是安卓菜鸟。我写了一个带有选项菜单的主要活动。每个选项都会打开自己的活动。当我单击每个子活动中的选项菜单时,我会得到一个“设置”菜单。如何删除或禁用它,以便只有主要活动有选项菜单?

我已经尝试过:在每个子活动中,我都获得了菜单项的一个实例并将其禁用。

首先是主要活动的代码

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;
}

}

4

1 回答 1

11

从不需要选项菜单onCreateOptionsMenu(Menu menu)的活动(ShowSettingsActivity和 )中删除。EditSettingsActivity

于 2013-06-07T21:51:33.580 回答