Я создал Android-обои для Android, и я пытаюсь разрешить пользователю выбирать изображение со своего телефона и применять его как фоновое изображение, но когда я запускаю деятельность, которая начинается с намерения выберите изображения, мои общие настройки, похоже, не сохранены должным образом.Общие настройки для Android не сохраняются
Ниже мой метод onCreate активности, который я запускаю, когда пользователи нажимают кнопку предпочтения, и onActivityResult, который получает путь к изображению на устройстве (все это работает). Печать после того, как я зафиксирую настройки, ничего не выводит.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PICTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
preferences.edit().putString(SETTINGS_BACKGROUND_IMAGE, "okok");
preferences.edit().commit();
System.out.println("Image" + preferences.getString(SETTINGS_BACKGROUND_IMAGE, ""));
}
}
finish();
}
Является единственным, кто не видит различия в логике между этим и исходным кодом? – josephus
, когда вы вызываете preferences.edit(), вы получаете экземпляр редактора, на котором jOE помещал строку, но после этого этот экземпляр больше не использовался (таким образом, потерянный и, возможно, сбор мусора). Затем jOE снова вызвал функцию preferences.edit(), получив другой экземпляр редактора, содержащий начальные настройки, которые он только что сохранил. Это в основном просто сохранили первоначальные настройки (ничего не изменило для его общих настроек) – zrgiu
zrgui, большое спасибо за вашу помощь! Ваше предложение отлично работало! – jOE