![](/img/trans.png)
[英]Android how to dynamically change actionbar tabs text color on orientation change
[英]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.