簡體   English   中英

如何在android操作欄中更新菜單文本

[英]How to update the text of menu in android actionbar

我有什么 ::

我在操作欄中有一個菜單,里面有兩個子項


buffet_map_cart.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_cart_buyaction_cart_reserve
  • 如何從Java代碼中找到此資源並更新文本?

您可以使用onPrepareOptionsMenu(Menu)進行動態更新:

准備要顯示的屏幕標准選項菜單。 每次顯示菜單時都會調用此菜單。 您可以使用此方法有效地啟用/禁用項目或以其他方式動態修改內容。

您可以像以下一樣使用它:

@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);
}

從菜單中查看findItem ,而不是MenuItem ,有一個setTitle

Edit--有一個叫這“在運行時更改菜單項”主題的文章可以幫助你。

您可以訪問onCreateOptionsMenuonPrepareOptionsMenuMenu對象(更好)。

public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem item = menu.findItem(R.id.action_cart_buy);
    item.setTitle("Any title");

    return super.onPrepareOptionsMenu(menu);
}

要使UI在適當的時間更新ActionBar,您必須調用:

invalidateOptionsMenu();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM