Android 更改布局时更改操作栏菜单
Android change actionbar menu when you change layouts
我正在制作一个简单的记事本应用程序,我需要帮助更改 ActionBar 下拉菜单。我希望主布局有新笔记的选项和设置,但我需要在用户进入笔记编辑器时更改菜单。我已经制作了菜单我只是不知道如何在更改为不同的布局时切换到不同的菜单。
main_menu.xml(在 res/menu 文件夹 内)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/idOne"
android:icon="@drawable/ic_launcher"
android:showAsAction="ifRoom|withText"
android:title="Title 1"/>
<item
android:id="@+id/idTwo"
android:icon="@drawable/ic_launcher"
android:showAsAction="ifRoom|withText"
android:title="Title 2"/>
</menu>
在你的Activity
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.idOne:
doSomething();
return true;
case R.id.idTwo:
doSomething2();
return true;
}
return super.onOptionsItemSelected(item);
}
/* Above is presented the standard way of inflating a menu on Activity creation.
* When you need to change it later then you must override this method
* (also in your Activity)
*/
public boolean onPrepareOptionsMenu (Menu menu) {
menu.clear(); //clears the current menu
if (evaluateSomeCondition)
getMenuInflater().inflate(R.menu.another_menu, menu);
else if (evaluateSomeOtherCondition)
getMenuInflater().inflate(R.menu.yet_another_menu, menu);
return super.onPrepareOptionsMenu(menu);
}
我正在制作一个简单的记事本应用程序,我需要帮助更改 ActionBar 下拉菜单。我希望主布局有新笔记的选项和设置,但我需要在用户进入笔记编辑器时更改菜单。我已经制作了菜单我只是不知道如何在更改为不同的布局时切换到不同的菜单。
main_menu.xml(在 res/menu 文件夹 内)
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/idOne"
android:icon="@drawable/ic_launcher"
android:showAsAction="ifRoom|withText"
android:title="Title 1"/>
<item
android:id="@+id/idTwo"
android:icon="@drawable/ic_launcher"
android:showAsAction="ifRoom|withText"
android:title="Title 2"/>
</menu>
在你的Activity
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.idOne:
doSomething();
return true;
case R.id.idTwo:
doSomething2();
return true;
}
return super.onOptionsItemSelected(item);
}
/* Above is presented the standard way of inflating a menu on Activity creation.
* When you need to change it later then you must override this method
* (also in your Activity)
*/
public boolean onPrepareOptionsMenu (Menu menu) {
menu.clear(); //clears the current menu
if (evaluateSomeCondition)
getMenuInflater().inflate(R.menu.another_menu, menu);
else if (evaluateSomeOtherCondition)
getMenuInflater().inflate(R.menu.yet_another_menu, menu);
return super.onPrepareOptionsMenu(menu);
}