Я новичок в разработке android, и я пытаюсь реализовать Activity Activity, чтобы он мог принимать предпочтения пользователя. Это моя активность в настройках, которая уже включает код для обработки изменений Edit Preference. Модуль реализован для Android 3.0 и выше, поэтому используется параметр Фрагмент.Как добавить ListPreference в эту операцию?
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
public static class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.pref_general);
}
@Override
public void onResume(){
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause(){
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key){
if(key.equals("location")){
Preference loc_preference=findPreference("location");
loc_preference.setSummary(sharedPreferences.getString(key,""));
}
}
}
}
Это файл pref_gen.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<EditTextPreference
android:key="@string/pref_loc_key"
android:dialogMessage="@string/location_dialog_message"
android:dialogTitle="@string/location_dialog"
android:title="@string/pref_loc_label"
android:defaultValue="@string/pref_default_loc"
android:selectAllOnFocus="true"
android:singleLine="true" />
<ListPreference
android:key="@string/pref_unit_key"
android:dialogTitle="@string/unit_dialog_message"
android:title="@string/pref_unit_label"
android:defaultValue="@string/pref_default_unit"
android:entries="@array/pref_unit_options"
android:entryValues="@array/pref_unit_values" />
Это файл arrays.xml
<string-array name="pref_unit_options">
<item>Metric</item>
<item>Imperial</item>
</string-array>
<string-array name="pref_unit_values">
<item>1</item>
<item>0</item>
</string-array>
Может кто-нибудь помочь мне добавить предпочтение списка модуль в методе «Фрагмент настроек» вместе с прослушивателем? Я прошел через другие должности, но каким-то образом я не могу изменить его соответствующим образом.