所以我在Action Bar中有一个搜索按钮,但我只想在第一个Activity中使用该按钮,但是当我打开seconde活动时,Action按钮仍然存在。如何在不删除操作栏的情况下摆脱seconde活动中的那个按钮,因为我需要从导航抽屉中找到它。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom" />
...
</menu>
活动1:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);
}
活动2:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//I thought removing the INFLATER part would help, but it didn't...
return super.onCreateOptionsMenu(menu);
}
答案 0 :(得分:0)
您可以使第二个活动中的项目不可见:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.findItem(R.id.action_search);
item.setVisible(false);
return super.onCreateOptionsMenu(menu);
}
另一种方法是加载第二个没有项目的menu.xml。
答案 1 :(得分:0)
您可以尝试在第二个活动中隐藏搜索菜单项。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.action_search).setVisible(false);
return true;
}
您可以通过多个答案参考此question。
答案 2 :(得分:0)
如果您返回false,则不会显示。作为android docment说http://developer.android.com/reference/android/app/Activity.html#onCreateOptionsMenu%28android.view.Menu%29
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return false;
}