Parça için gerekli olan AppCompatActivity
'u uzatmanız ve PreferenceFragmentCompat
alt sınıfını içermeniz gerekir. Soyut parça, tercih enflasyonu mantığını yerleştirmeniz gereken bir yöntemi geçersiz kılar. Son olarak, etkinlik temanızın bir preferenceTheme
özniteliğini belirtmesi gerekiyor.
Duyuruyu okuyun here. Ben o iş yapılmış ne kadar tercih-v7 kütüphane ile SwitchPreferenceCompat
ile PreferenceFragment
(API 11+) PreferenceFragmentCompat
alt sınıf ile ve SwitchPreference
(API 14+) değiştirin ve 7. Aşağıda
senin ayarları API ekran işi olabilir:
SettingsActivity.java
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
}
düzen/activity_settings.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent" >
<fragment
android:name=".SettingsFragment"
android:tag=".SettingsFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
SettingsFragment.java
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.preferences);
}
}
xml/preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<android.support.v7.preference.PreferenceCategory
...>
<android.support.v7.preference.ListPreference
... />
<android.support.v7.preference.SwitchPreferenceCompat
... />
...
</android.support.v7.preference.PreferenceCategory>
...
</android.support.v7.preference.PreferenceScreen>
değerler/stilleri.xml
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
...
</style>
tercihi-v7 varsayılan tema
<style name="PreferenceThemeOverlay">
<item name="preferenceScreenStyle">@style/Preference.PreferenceScreen</item>
<item name="preferenceFragmentStyle">@style/PreferenceFragment</item>
<item name="preferenceCategoryStyle">@style/Preference.Category</item>
<item name="preferenceStyle">@style/Preference</item>
<item name="preferenceInformationStyle">@style/Preference.Information</item>
<item name="checkBoxPreferenceStyle">@style/Preference.CheckBoxPreference</item>
<item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat</item>
<item name="dialogPreferenceStyle">@style/Preference.DialogPreference</item>
<item name="editTextPreferenceStyle">@style/Preference.DialogPreference.EditTextPreference</item>
<item name="preferenceFragmentListStyle">@style/PreferenceFragmentList</item>
</style>
:
Yani böyle xml yazmalıyım? –
https://plus.google.com/+AndroidDevelopers/posts/9kZ3SsXdT2T –
https://github.com/codevscolor/MaterialPreference Kolayca malzeme tercihi oluşturmak için kullanılabilecek bu kütüphaneyi uyguladım (v7 tercihli uyumluluk burada kullanılır – codevscolor