Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android actionbar中更新菜单文本_Android_Android Actionbar - Fatal编程技术网

如何在android 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

我所拥有的

我在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_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);
}