2014-12-05 2 views
-1

버튼을 클릭하여 작업 표시 줄의 제목 색상을 변경하려고하는 Android 앱을 작성 중입니다. 단추를 클릭하자마자, 나는 YELLOW의 색상 코드를 전달하고 있지만 제목은 숨겨집니다. 여기 Internal.java액션 바 제목의 색상 변경 Android

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); 
} 

내 코드입니다

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

이 튜토리얼을 따라가보십시오. 도움이 되겠습니다. http://stackoverflow.com/questions/9019512/how-can-i-change-the-touch-effect-color-of-the-actionbar-in-android-3 -0-and-high https://developer.android.com/training/basics/actionbar/styling.html –

답변

0
actionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED)); 
actionBar.setDisplayShowTitleEnabled(false); // required to force redraw 
actionBar.setDisplayShowTitleEnabled(true); 
+0

전체 액션 바를 시안 색으로 변환합니다. 그리고 제목은 여전히 ​​표시되지 않습니다. –

0
int titleId=Resources.getSystem().getIdentifier("action_bar_title", "id", "android"); 
    TextView yourTextView = (TextView)findViewById(titleId); 
    yourTextView.setTextColor(getResources().getColor(R.color.white)); 
0

액션 바 타이틀 ID가 숨겨져 또는 다른 말로하면, 그것은 내부의하고 있습니다 접근 일반적으로 완료되지 않습니다. Resources.getIdentifier를 사용하여 참조 할 수 있습니다.

에 따라 아래의 단계 :

1. 잡고 action_bar_title 이제

int titleId = getResources().getIdentifier("action_bar_title", "id", "android"); 

2. 당신은 텍스트 뷰

TextView abTitle = (TextView) findViewById(titleId); 
abTitle.setTextColor(colorId); 

으로 ID를 사용할 수 있습니다에 대한 ID 그게 다야.