Android 更改操作栏标题的颜色
我正在编写一个android应用程序,在这个程序中,我试图通过点击按钮来改变动作栏标题的颜色。只要我点击按钮,标题就会被隐藏,尽管我正在传递黄色的色码。 这是我的mainActivity.java代码Android 更改操作栏标题的颜色,android,Android,我正在编写一个android应用程序,在这个程序中,我试图通过点击按钮来改变动作栏标题的颜色。只要我点击按钮,标题就会被隐藏,尽管我正在传递黄色的色码。 这是我的mainActivity.java代码 Button B; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity
Button B;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
B = (Button) findViewById(R.id.button1);
B.setOnClickListener(this);
}
public void onClick(View v) {
android.app.ActionBar actionBar = getActionBar();
Internal.setActionBarTitleColor(actionBar, 256);
}
Internal.java
public static void setActionBarTitleColor(android.app.ActionBar actionBar, int titleColor) {
if(actionBar == null)
return;
try {
Field actionViewField = actionBar.getClass().getDeclaredField("mActionView");
actionViewField.setAccessible(true);
Object actionView = actionViewField.get(actionBar);
if(actionView == null)
return;
Field titleTextField = actionView.getClass().getDeclaredField("mTitleView");
titleTextField.setAccessible(true);
TextView titleText = (TextView)titleTextField.get(actionView);
if(titleText != null)
titleText.setTextColor(titleColor);
} catch (Exception e) {
e.printStackTrace();
}
}
ActionBar标题ID是隐藏的,或者换句话说,它是内部的,通常无法访问它。您可以使用Resources.getIdentifier引用它 请执行以下步骤: 1。抓取操作栏标题的ID
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
2。现在,您可以将ID与文本视图一起使用
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
仅此而已。尝试遵循此教程,它将有助于将整个动作栏转换为青色。标题仍然没有显示。
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);