Để thay đổi mà không xác định tài nguyên kiểu, chúng tôi có thể sử dụng 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;
}
Khi bạn định dạng kiểu văn bản, bạn sẽ nhận được ngoại lệ "Loại mục tải trọng không hợp lệ". Để tránh điều đó, hãy ghi đè lênMenuItemSelected và sử dụng trả về true hoặc false.
tham khảo:
Android: java.lang.IllegalArgumentException: Invalid payload item type
http://vardhan-justlikethat.blogspot.in/2013/02/solution-invalid-payload-item-type.html
Nguồn
2013-09-19 14:03:47
Có cách nào để thay đổi nó mà không cần xác định một nguồn tài nguyên phong cách? – Fabii
Điều này không trả lời được câu hỏi. – Odys
... nhưng đó là câu trả lời được chấp nhận! –