簡體   English   中英

為Android操作欄按鈕動態更改文本

[英]Change text dynamically for Android Actionbar Button

我有一個Action Bar(使用actionbarsherlock),里面有兩個項目。 其中之一是用戶在我的應用中收集的積分數量。 我想在點數變化時更改此操作欄按鈕。

我無法弄清楚如何設置該Button的TextView。 如何通過代碼設置?

ActionBar項目來自選項菜單,在欄上顯示時呈現為按鈕。 如果您沒有提供圖標,則選項MenuItem的標題將用作按鈕的標題,

因此,除非您使用自定義視圖,並且只是使用菜單項標題作為分數指示符, onPrepareOptionsMenu()可以在onPrepareOptionsMenu()進行更改。 當您需要更新時,請調用invalidateOptionsMenu() ,並為您調用onPrepareOptionsMenu。

例如

//user scores some points
mUserScore += points;
invalidateOptionsMenu();

然后在回調中:

@Override
public void onPrepareOptionsMenu(Menu menu) {
    MenuItem score = menu.findItem(R.id.score_menu_item);
    score.setTitle(String.valueOf(mUserScore));
}

首先,您不要設置“按鈕的TextView”,因為Button擴展了TextView,您可以設置Button本身的文本。 您可以嘗試在活動的onCreate()按以下方式執行此操作:

//I suppose you create custom ActionBar like this
final View addView = getActivity().getLayoutInflater().inflate(R.layout.my_action_bar, null);
bar.setCustomView(addView);
button=(Button)addView.findViewById(R.id.button);
button.setText("Whatever");

如果您使用菜單項,那么您應該嘗試這種方法:

getSupportMenuInflater().inflate(R.menu.activitymenu, menu);
MenuItem menuItem=menu.findItem(R.id.menuSearch);

也可以嘗試在這里這里這里 它應該是有幫助的。

這段代碼對我有用

actionBar.setCustomView(R.layout.my_action_bar);
button=(Button)actionBar.getCustomView().findViewById(R.id.button);
button.setText("text");

暫無
暫無

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

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