我有一个包含多个项目的操作栏,我想在单击该项目时更改文本的颜色。有没有办法以编程方式执行此操作?请提供示例或任何资源。
Thanks
public void catalogClick(MenuItem item){
//highlight menuitem etc.
}
要在不定义样式资源的情况下进行更改,我们可以使用 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,并使用 return true 或 false。
参考:
Android:java.lang.IllegalArgumentException:无效的有效负载项类型 https://stackoverflow.com/questions/7658725/android-java-lang-illegalargumentexception-invalid-payload-item-type
http://vardhan-justlikethat.blogspot.in/2013/02/solution-invalid-payload-item-type.html http://vardhan-justlikethat.blogspot.in/2013/02/solution-invalid-payload-item-type.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)