Я выполнил документацию, чтобы создать фрагмент предпочтений. Все мои настройки работают так, как ожидалось, но у меня есть параметр первого и последнего имени, который я бы хотел динамически загружать из SharedPreferences. Эти значения уже сохранены, когда пользователь вошел вЗагрузка ранее сохраненных данных из SharedPreferences в PreferenceFragment
Их значения в strings.xml:.
<string name="first_name">first_name</string>
<string name="last_name">last_name</string>
Их сохраняется на входе:
editor.putString(mContext.getResources().getString(R.string.first_name), firstName);
editor.putString(mContext.getResources().getString(R.string.last_name), lastName);
editor.commit();
предпочтения в preferences.xml:
<EditTextPreference
android:key="@string/first_name"
android:inputType="text"
android:persistent="true"
android:title="First Name"/>
<EditTextPreference
android:key="@string/last_name"
android:inputType="text"
android:persistent="true"
android:title="Last Name"/>
Попытка загрузить их в Preference Фрагмент:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sessionManager = SessionManager.getInstance(getActivity());
addPreferencesFromResource(R.xml.preferences);
PreferenceManager.setDefaultValues(getActivity(), R.xml.preferences, false);
// Set first and last name preference default values
firstNamePreference = (EditTextPreference)findPreference("first_name");
lastNamePreference = (EditTextPreference)findPreference("last_name");
nearbyPreference = (CheckBoxPreference)findPreference("show_places");
// firstNamePreference.setText(sessionManager.getUserFirstName());
// firstNamePreference.setSummary(sessionManager.getUserFirstName());
// lastNamePreference.setText(sessionManager.getUserLastName());
// lastNamePreference.setSummary(sessionManager.getUserLastName());
nearbyPreference.setDefaultValue(true);
}
Поэтому я могу установить их вручную (а также резюме), но мне бы очень хотелось установить их из уже установленных значений в SharedPreferences. Как я могу это сделать?
К сожалению, это не работает для меня :(@michaelcarrano – Brandon