我只想在我的主要活动中显示我的菜单,然后从我的其他活动而不是菜单中选择一个后退按钮。现在我只是想知道如何从操作栏中删除我不想要的活动菜单。
我的宣言:
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Insulter"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="Favourites"
android:launchMode = "singleInstance">
</activity>
<activity
android:name="Settings"
android:launchMode = "singleInstance">
</activity>
</application>
我的主要活动中的菜单开场白:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
Intent startSettings = (new Intent(Insulter.this,Settings.class));
startActivity(startSettings);
return true;
} else if (id == R.id.exit_the_app) {
finish();
return true;
} else if (id == R.id.favourites) {
Intent startFavs = (new Intent(Insulter.this, Favourites.class));
String[] objects = new String[favs.size()];
favs.toArray(objects);
final ArrayList<String> list = new ArrayList<>(Arrays.asList(objects));
startFavs.putStringArrayListExtra("favs",list);
startActivity(startFavs);
return true;
}
return super.onOptionsItemSelected(item);
}
答案 0 :(得分:2)
Activity.onCreateOptionsMenu是创建它的地方。只是不要覆盖此方法或让它返回false以不显示菜单。
您必须返回true才能显示菜单;如果你返回false,它将不会显示。
如果您对所有活动使用相同的实现,请定义字段boolean isMain
并从onCreateOptionsMenu返回
public boolean onCreateOptionsMenu (Menu menu) {
if (!isMain)
return false;
[creating the menu here like before]
}
答案 1 :(得分:1)
如果您想在任何活动中使用菜单,则需要覆盖 onCreateOptionsMenu 和 onOptionsItemSelected ... 如果您不想要菜单,只需在活动中不要覆盖这些方法......
答案 2 :(得分:0)
对于您创建的每个活动,必须在res/menu
文件夹中有与之关联的菜单文件。只需删除或评论相应的<item>
代码即可。您可以通过查看预览屏幕中的输出节目来试验它们。
注意:我认为这只适用于使用UI自动创建活动(即非手动),因为相应的菜单文件是自动生成的。
答案 3 :(得分:0)
您需要在非主要活动中使用以下步骤删除选项菜单和添加后退按钮 -
以下列方式覆盖onOptionsItemSelected方法 -
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case android.R.id.home:
finish();
return super.onOptionsItemSelected(item);
}
}