Я создал простой класс «Пользователь» с атрибутом String username
. Я предполагаю, что, поскольку Android использует Java, я могу создавать собственные классы, и он будет использовать их соответствующим образом. В моем SettingsActivity.java у меня есть:
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
SharedPreferences sharedPref = getPreferenceScreen().getSharedPreferences();
EditTextPreference editTextPref = (EditTextPreference) findPreference("username");
editTextPref.setSummary(sharedPref.getString("username", "Default"));
//sharedPref.registerOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
// Get current summary
Preference pref = findPreference(arg1);
if(pref instanceof EditTextPreference){
EditTextPreference etp = (EditTextPreference) pref;
pref.setSummary(etp.getText());
MainMenu.user.setName(etp.getText()); //This is where I try to update my class
}
}
На данный момент, всякий раз, когда я меняю значение моего виджета EditTextPreference
, он не обновляет общедоступный статический объект пользователя, расположенный в MainMenu
. Кроме того, дополнительный вопрос: поскольку Android сохраняет настройки при каждом запуске приложения, как мне обновить строку User.username
при запуске?