我正在编写一个Android应用程序,我试图通过单击Button来更改Action Bar标题的颜色。只要我点击按钮,标题就会被隐藏,虽然我传递的是黄色的颜色代码。 这是我的MainActitvity.java代码
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();
}
}
答案 0 :(得分:0)
actionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
actionBar.setDisplayShowTitleEnabled(false); // required to force redraw
actionBar.setDisplayShowTitleEnabled(true);
答案 1 :(得分:0)
int titleId=Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
TextView yourTextView = (TextView)findViewById(titleId);
yourTextView.setTextColor(getResources().getColor(R.color.white));
答案 2 :(得分:0)
ActionBar标题ID是隐藏的,换句话说,它是内部的,并且通常无法访问它。您可以使用Resources.getIdentifier。
来引用它按照以下步骤操作:
<强> 1。获取action_bar_title的ID
int titleId = getResources().getIdentifier("action_bar_title", "id", "android");
<强> 2。现在,您可以将ID与TextView
一起使用TextView abTitle = (TextView) findViewById(titleId);
abTitle.setTextColor(colorId);
这就是全部。