1
android dev에 새로 추가되었습니다. iOS에서 어두운쪽으로 전환 했으므로 싫어하십시오.PreferenceFragmentCompat 테마에 preferenceTheme을 지정해야합니다.
질문 : 내가 내 Gradle을에 compile 'com.android.support:preference-v7:27.0.0'
을 추가했다. styles.xml
에 테마를 지정했습니다. 그러나, 나는 여전히 아래와 같은 오류 메시지가 나타납니다. 이 문제를 해결하는 방법?
java.lang.IllegalStateException: Must specify preferenceTheme in theme
at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:211)
참조 : Stackoverflow answer, Medium article
SettingsFragment
public class SettingsFragment extends PreferenceFragmentCompat {
private SwitchPreferenceCompat receiveReminders;
private ListPreference notifyMe;
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
receiveReminders = (SwitchPreferenceCompat) findPreference(R.string.key_receive_reminders);
notifyMe = (ListPreference) findPreference(R.string.key_notify_me);
}
}
styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
preferences.xml로
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="@string/settings_category_notifications">
<SwitchPreferenceCompat
android:key="@string/key_receive_reminders"
android:title="@string/settings_receive_reminders"
android:defaultValue="true"/>
<ListPreference
android:key="@string/key_notify_me"
android:title="@string/settings_notify_me"
android:summary="%s"
android:entries="@array/settings_notify_me_titles"
android:entryValues="@array/settings_notify_me_titles"
android:defaultValue="@string/notify_me_2_hours"
android:positiveButtonText="@null"
android:dependency="@string/key_receive_reminders"/>
</PreferenceCategory>
</PreferenceScreen>