Android 更改子(嵌套)首选项屏幕标题颜色
我用了这个:Android 更改子(嵌套)首选项屏幕标题颜色,android,android-actionbar,sharedpreferences,Android,Android Actionbar,Sharedpreferences,我用了这个: public void onCreate(Bundle bundle) { super.onCreate(bundle); addPreferencesFromResource(R.xml.prefs); final PreferenceScreen preferenceScreen = (PreferenceScreen) findPreference("child"); preferenceScreen.setOnPreferenceClickL
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;
}
});
}
它只需将标题更改为NewTitle,并在操作栏标题下隐藏蓝线,而不更改标题颜色。有什么建议吗?试试这个
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);
}