複数のアイテムを持つactionBarがあります。アイテムをクリックすると、テキストの色を変更したいと思います。これをプログラムで実行する方法はありますか?例やリソースを提供してください。ActionBarのmenuitemテキストの色をプログラムで変更するにはどうすればよいですか?
おかげ
public void catalogClick(MenuItem item){
//highlight menuitem etc.
}
複数のアイテムを持つactionBarがあります。アイテムをクリックすると、テキストの色を変更したいと思います。これをプログラムで実行する方法はありますか?例やリソースを提供してください。ActionBarのmenuitemテキストの色をプログラムで変更するにはどうすればよいですか?
おかげ
public void catalogClick(MenuItem item){
//highlight menuitem etc.
}
は、プログラムテキストメニューアイテムを変更する方法について説明し、このリンクをクリックしてください。アンドロイド用
http://developer.android.com/guide/topics/ui/actionbar.html#Style
チェック:テキストのスタイルリソースを定義するためのactionMenuTextColor。
スタイルリソースを定義せずに変更する場合は、SpannableStringを使用できます。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
//To style first menu item
MenuItem menuItem = menu.getItem(0);
CharSequence menuTitle = menuItem.getTitle();
SpannableString styledMenuTitle = new SpannableString(menuTitle);
styledMenuTitle.setSpan(new ForegroundColorSpan(Color.parseColor("#00FFBB")), 0, menuTitle.length(), 0);
menuItem.setTitle(styledMenuTitle);
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
Toast.makeText(this, item.getTitle() + " clicked!", Toast.LENGTH_LONG).show();
return true;
}
テキストスタイルをフォーマットすると、「無効なペイロードアイテムタイプ」例外が発生します。これを避けるには、onMenuItemSelectedをオーバーライドし、trueまたはfalseを返します。
参考:
Android: java.lang.IllegalArgumentException: Invalid payload item type
http://vardhan-justlikethat.blogspot.in/2013/02/solution-invalid-payload-item-type.html
はFirewall_Sudhan答えをしてみたが、メニュー
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
SubMenu subMenu = menu.getItem(0).getSubMenu();
for (int i = 0; i < subMenu.size(); i++) {
MenuItem menuItem = subMenu.getItem(i);
CharSequence menuTitle = menuItem.getTitle();
SpannableString styledMenuTitle = new SpannableString(menuTitle);
styledMenuTitle.setSpan(new ForegroundColorSpan(Color.BLACK), 0, menuTitle.length(), 0);
menuItem.setTitle(styledMenuTitle);
}
}
この解決策はandroid 5.0と6.0では動作しません – Akshay
のサブメニューを反復することは、スタイルリソースを定義せずにそれを変更する方法はありますか? – Fabii
これは質問された質問に答えません。 – Odys
...それでも受け入れられた答えです! –