如何在android actionbar中更新菜单文本
我所拥有的: 我在actionbar中有一个菜单,它有两个子项如何在android actionbar中更新菜单文本,android,android-actionbar,Android,Android Actionbar,我所拥有的: 我在actionbar中有一个菜单,它有两个子项 自助餐地图购物车.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_cart" android:icon="@drawable/ic
自助餐地图购物车.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_cart"
android:icon="@drawable/ic_action_camera"
android:showAsAction="ifRoom"
android:title="cart">
<menu>
<item
android:id="@+id/action_cart_buy"
android:icon="@drawable/ic_action_camera"
android:title="Sort by newest"/>
<item
android:id="@+id/action_cart_reserve"
android:icon="@drawable/button_reserve_selector"
android:title="Sort by rating"/>
</menu>
</item>
</menu>
我正在尝试做的事情:
- 我想动态更新菜单按钮的文本
和action\u cart\u buy
action\u cart\u reserve
- 如何从Java代码中找到此资源并更新文本
其中有一个主题叫做“在运行时更改菜单项”,这可能也会对您有所帮助。您可以访问
onCreateOptions菜单中的菜单
对象,或者onPrepareOptions菜单
(更好)
要使UI在正确的时间更新ActionBar,您必须调用:
invalidateOptionsMenu();
可用于动态更新:
准备要显示的屏幕标准选项菜单。每次显示菜单之前,都会调用此函数。您可以使用此方法有效地启用/禁用项目或动态修改内容
您可以像这样使用它:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem buyItem = menu.findItem(R.id.action_cart_buy);
MenuItem reserveItem = menu.findItem(R.id.action_cart_reserve);
buyItem.setTitle("New buyItem String");
reserveItem.setTitle("New reserveItem String");
return super.onPrepareOptionsMenu(menu);
}
在PrepareOptions菜单或任何其他菜单上执行此操作需要哪种方法?[+1]。。。用于共享信息
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem buyItem = menu.findItem(R.id.action_cart_buy);
MenuItem reserveItem = menu.findItem(R.id.action_cart_reserve);
buyItem.setTitle("New buyItem String");
reserveItem.setTitle("New reserveItem String");
return super.onPrepareOptionsMenu(menu);
}