여러 항목이있는 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);
}
}
이 솔루션은 안드로이드 5.0 및 6.0에서 작동하지 않습니다 – Akshay
스타일 리소스를 정의하지 않고 변경하는 방법이 있나요의 하위 메뉴를 반복 시도? – Fabii
이것은 질문 된 질문에 응답하지 않습니다. – Odys
... 아직 허용 된 답변입니다! –