Как изменить цвет текста резюме на SwitchPreference
Я создал настройку с помощью PreferenceFragmentCompat
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.settings_pref);
Preference pref = findPreference("theme_key");
SwitchPreference swPref = (SwitchPreference) pref;
pref.setOnPreferenceChangeListener((preference, o) -> {
boolean state = Boolean.valueOf(o.toString());
String summaryValue;
if(state){
summaryValue = swPref.getSwitchTextOn().toString();
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
restartActivity();
}else {
summaryValue = swPref.getSwitchTextOff().toString();
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
restartActivity();
}
Toast.makeText(getContext(), "Theme " + summaryValue, Toast.LENGTH_SHORT).show();
return true;
});
}
private void restartActivity() {
Intent i = new Intent(getActivity(), SettingsActivity.class);
startActivity(i);
getActivity().overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
getActivity().finish();
} }
и мой XML-файл (settings_pref) выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreference
android:key="theme_key"
android:defaultValue="false"
android:title="@string/title_theme_pref"
android:summaryOn="Dark"
android:summaryOff="Light"
android:textColor="?attr/textcolor"<!--this textColor not working, i have test with different color based on theme, still has no effect-->
android:textColorHint="?attr/textcolor" />
</PreferenceScreen>
По функциональности он работает нормально, но я до сих пор не нашел литературы для изменения Summary TextColor моего SwitchPreference, которое соответствует текущему значению. Проблема показывает как изображение, как показано ниже
1 ответ
Я столкнулся с подобной проблемой. порылся в инете и наконец нашел проблему
Изменить цвет сводного текста диалогового окна с предпочтением V7
Подводя итог следующим образом:
темы.xml
<style name="Theme.xxx.PreferenceSumary">
<item name="android:textColorSecondary">@color/gray</item>
</style>
AndroidManifest.xml
<activity
***
android:theme="@style/Theme.xxx.PreferenceSumary"
*** />