从一个 activity 切换到另一个时如何覆盖工具栏中的上一个菜单?
How to override previous menu in toolbar while switching from one activity to another?
我正在使用工具栏中的搜索菜单项,从一个 activity 切换到另一个时,单击搜索按钮会输出 Log.d(TAG, "Default" ),而不是 Log.d(TAG, "Search button Pressed" );
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// The action bar home/up action should open or close the drawer.
// ActionBarDrawerToggle will take care of this.
Log.d(TAG, "menu Item id = " + item.getItemId() );
Log.d(TAG, "search id = " + R.id.search_emp);
// Handle action buttons
switch (item.getItemId()) {
case R.id.search_emp:
Log.d(TAG, "Search button Pressed" );
return true;
case android.R.id.home:
this.finish();
return true;
default:
Log.d(TAG, "Default" );
return super.onOptionsItemSelected(item);
}
}
search_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search_emp"
android:title="@android:string/search_go"
android:icon="@drawable/ic_action_search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"
android:visible="true"/>
回应
05-16 16:34:11.511 3882-3882/? D/SearchListActivity: menu Item id = 2131493212
05-16 16:34:11.511 3882-3882/? D/SearchListActivity: search id = 2131493213
即使我在我的新 activity 中声明了一个新菜单,它仍然显示以前的菜单。并且 onclick 也执行在前面 activity.
中声明的相同方法
我卡在这里了,请帮助我out.Thanks。
您可以在为新方法充气之前调用方法 menu.clear()。如果您按下后退按钮 - 将恢复上一个 activity(或)片段的菜单。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.your_menu, menu);
}
我正在使用工具栏中的搜索菜单项,从一个 activity 切换到另一个时,单击搜索按钮会输出 Log.d(TAG, "Default" ),而不是 Log.d(TAG, "Search button Pressed" );
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// The action bar home/up action should open or close the drawer.
// ActionBarDrawerToggle will take care of this.
Log.d(TAG, "menu Item id = " + item.getItemId() );
Log.d(TAG, "search id = " + R.id.search_emp);
// Handle action buttons
switch (item.getItemId()) {
case R.id.search_emp:
Log.d(TAG, "Search button Pressed" );
return true;
case android.R.id.home:
this.finish();
return true;
default:
Log.d(TAG, "Default" );
return super.onOptionsItemSelected(item);
}
}
search_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search_emp"
android:title="@android:string/search_go"
android:icon="@drawable/ic_action_search"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView"
android:visible="true"/>
回应
05-16 16:34:11.511 3882-3882/? D/SearchListActivity: menu Item id = 2131493212
05-16 16:34:11.511 3882-3882/? D/SearchListActivity: search id = 2131493213
即使我在我的新 activity 中声明了一个新菜单,它仍然显示以前的菜单。并且 onclick 也执行在前面 activity.
中声明的相同方法我卡在这里了,请帮助我out.Thanks。
您可以在为新方法充气之前调用方法 menu.clear()。如果您按下后退按钮 - 将恢复上一个 activity(或)片段的菜单。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.your_menu, menu);
}