use*_*265 2 java android menu title
我正在尝试动态设置菜单的标题.
检索并设置如下:
ItemView menuTitle = ((ItemView) findViewById(R.id.menu_filter));
menuTitle.setTitle("TITLE_HERE");
Run Code Online (Sandbox Code Playgroud)
只要它在onOptionsItemSelected(MenuItem item)方法中就可以正常工作.
我无法找到一种方法来设置这个onPrepareOptionsMenu或onCreateOptionsMenu方法作为findViewById返回null(即使在充气菜单后).
奇怪的是,文档中似乎没有任何内容可以实现这一点,并且谷歌搜索对于这样一个看似简单的问题并没有太多关注.
我一定是刚刚迷失了,没有意识到菜单中有一个名为 findItem 的函数...
menu.findItem(R.id.MENU_TITLE).setTitle("MY TITLE");
Run Code Online (Sandbox Code Playgroud)
我建议在活动中保留对您收到的Menu对象的引用onCreateOptionsMenu,然后使用它来检索MenuItem需要在您需要时进行更改的内容.例如,您可以按照以下方式执行某些操作:
public class YourActivity extends Activity {
private Menu menu;
private String inMenuTitle = "Set to In";
private String outMenuTitle = "Set to Out";
private boolean flag = false;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// Create your menu...
this.menu = menu;
return true;
}
private void updateMenuTitles() {
MenuItem menuItem = menu.findItem(R.id.bedSwitch);
if (flag) {
menuItem .setTitle(outMenuTitle);
} else {
menuItem .setTitle(inMenuTitle);
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以覆盖onPrepareOptionsMenu以在每次显示菜单时更新菜单项.
| 归档时间: |
|
| 查看次数: |
13760 次 |
| 最近记录: |