2014-10-28 96 views
0

我用這個:更改子(嵌套)PreferenceScreen標題顏色

public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    addPreferencesFromResource(R.xml.prefs); 
    final PreferenceScreen preferenceScreen = (PreferenceScreen) findPreference("child"); 
    preferenceScreen.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      // TODO Auto-generated method stub 
      PreferenceScreen a = (PreferenceScreen) preference; 
      a.getDialog().getWindow().setTitle("NewTitle"); 
      a.getDialog().getWindow().setTitleColor(getResources().getColor(R.color.orange)); 
      preferenceScreen.getDialog().getActionBar().setDisplayShowHomeEnabled(false); 
      preferenceScreen.getDialog().getActionBar().setBackgroundDrawable(null); 
      return true; 
     } 
    }); 

}

它只是將標題更改爲新標題和隱藏在下面的動作條標題的藍線不改變titlecolor。有什麼建議麼?

回答

0

試試這個

public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { 
    super.onPreferenceTreeClick(preferenceScreen, preference); 

    if (preference != null) { 
     if (preference instanceof PreferenceScreen) { 
      initializeActionBar((PreferenceScreen) preference); 
        } 
     } 
    } 

    return false; 
} 

這裏是initializeActionBar:

 public static void initializeActionBar(PreferenceScreen preferenceScreen) 
      { 

     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; 
        }  
     TextView titleTextView=(TextView) dialog.findViewById(titleId); 
     if(titleTextView!=null) 
     titleTextView.setTextColor(Color.WHITE); 

}