问题描述
public void setActionBarTitle(String title) {
getSupportActionBar().setTitle(title);
Log.d("action bar id","action bar id title previo: "+title);
}
public void setActionBarTitleTextColor(String color) {
int actionBarTitleId = Resources.getSystem().getIdentifier("action_bar_title","id","android");
Log.d("action bar id","action bar id "+actionBarTitleId);
if (actionBarTitleId > 0) {
TextView title = (TextView) findViewById(actionBarTitleId);
Log.d("action bar id","action bar id title: "+title);
if (title != null) {
title.setTextColor(Color.parseColor(color));
}
}
}
我可以获得int actionBarTitleId
的值,在这种情况下为:
D/action bar id: action bar id 16908676
但是在方法setActionBarTitleTextColor
中,TextView标题中的文本始终被识别为null:
D/action bar id: action bar id title: null
这就是我从片段expl_especialidad_color_texto = #008080
((MainActivity) getActivity())
.setActionBarTitleTextColor(expl_especialidad_color_texto);
解决方法
我对方法setActionBarTitleTextColor()
使用以下解决方法解决了该问题:
public void setActionBarTitleTextColor(String color,String title) {
getSupportActionBar().setTitle(HtmlCompat.fromHtml("<font color='"+color+"'>"+title+"</font>",HtmlCompat.FROM_HTML_MODE_LEGACY));
}