2つのアイテムを含むアクションバー(actionbarsherlockを使用)があります。それらの1つは、ユーザーが私のアプリで収集したポイントの量です。ポイント数が変わったら、このアクションバーボタンを変えたい。
そのボタンのTextViewを設定する方法がわかりません。コードを介してそれを設定するにはどうすればよいですか?
2つのアイテムを含むアクションバー(actionbarsherlockを使用)があります。それらの1つは、ユーザーが私のアプリで収集したポイントの量です。ポイント数が変わったら、このアクションバーボタンを変えたい。
そのボタンのTextViewを設定する方法がわかりません。コードを介してそれを設定するにはどうすればよいですか?
ActionBarの項目はオプションメニューからのもので、バーに表示されるとボタンとして表示されます。アイコンを指定しない場合、オプションMenuItemのタイトルがボタンのタイトルとして使用されます。
したがって、カスタムビューを使用していて、スコアインジケーターとしてメニュー項目のタイトルを使用している場合を除いて、で変更できます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));
}
まず、「ボタンのテキストビュー」は設定しません。ボタンはテキストビューを拡張するため、ボタン自体のテキストを設定します。あなたはあなたの活動の中でこれを次のように試みることができます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");