Как определить, когда свойства PreferenceActivity изменены
Я создал и класс для управления моими предпочтениями:
public class ConfigurationActivity extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
Я могу изменить имя пользователя в конфигурации, но я хотел бы сделать больше вещей, когда это произойдет, я не знаю, как я мог обнаружить, что свойство было изменено, когда я использую этот метод для управления своими предпочтениями.
XML со свойством, которое я хочу изменить, выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/dialog_based_preferences">
<EditTextPreference
android:key="user_name"
android:title="@string/title_preferences_userName"
android:summary="@string/summary_preferences_userName"
android:dialogTitle="@string/title_preferences_userName" />
Спасибо
2 ответа
Вам необходимо реализовать интерфейс OnPreferenceChangeListener.
Ваша декларация изменится на
public class ConfigurationActivity extends PreferenceActivity implements
Preference.OnPreferenceChangeListener
и вам нужно реализовать
public boolean onPreferenceChange(Preference preference, Object newValue){
//your code here
return true;
}
Конечно, вам не нужно обязательно реализовывать интерфейс в этом классе, но я думаю, что в качестве примера это подойдет.
Ради полноты: Нравится Hoan Nguyen
сказал, что вам нужно вызвать метод, чтобы зарегистрировать свой класс для изменения предпочтений.
Preference textPref = this.findPreference(R.id.user_name);
textPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
//Do stuff
}
});
например в вашем onCreate()
метод.
Вы регистрируетесь для изменения, используя registerOnSharedPreferenceChangeListener
а также onSharedPreferenceChanged
будет вызываться каждый раз, когда изменяется предпочтение. Делай как DigCamara
Ответьте, если хотите зарегистрироваться только для выбранных настроек.