我需要以编程方式更改操作栏标题文本颜色。
我使用以下代码以稍微不同的方式设置颜色,具体取决于SDK版本
int textColor = getResources().getColor(android.R.color.white);
if (Build.VERSION.SDK_INT >= 14) {
// Version 4+
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
TextView abTitle = (TextView) findViewById(titleId);
if (abTitle != null) {
abTitle.setTextColor(textColor);
}
} else {
// Other versions
TextView abTitle = (TextView) getWindow().findViewById(android.R.id.title);
if (abTitle != null) {
abTitle.setTextColor(textColor);
}
}
在SDK值为14或更高的设备上运行正常。但是,对于Gingerbread设备,abTitle始终为null,因此颜色不会设置。
Anyony有什么建议吗?
答案 0 :(得分:6)
你的if/else
错了,看起来应该是
int titleId;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
titleId = getResources().getIdentifier("action_bar_title", "id", "android");
} else {
titleId = R.id.action_bar_title;
}
然后您应该可以通过findViewById
答案 1 :(得分:-1)
您是否使用过支持库?由于在api 11级以下不支持Actionbar。