Как менять изображение в реальном времени через SharedPreferences?
Я сделал в настройках SharedPreferences, смену картинки, но она сразу не меняется, а надо перезаходить в приложение. Главное если на прямую менять по кнопке, а не через настройки, меняет в реальном времени, но естественно не сохраняет.
P.s Не знаю, может после смены изображения обновлять layout или обновлять картинку?
// Это через Preference
private void init() {
def_pref = PreferenceManager.getDefaultSharedPreferences(this);
image_cats = findViewById(R.id.cats);
String text = def_pref.getString("main_text_size","Кот_1");
if (text != null) {
switch (text) {
case "Кот_1":
image_cats.setImageResource(R.drawable.cat);
break;
case "Кот_2":
image_catsw.setImageResource(R.drawable.cat_2);
case "Кот_3":
image_cats.setImageResource(R.drawable.cat_3);
break;
}
}
}
// А это по кнопке
public boolean onOptionsItemSelected(MenuItem item) {
image_cats = findViewById(R.id.cats);
int id = item.getItemId();
switch (id) {
case R.id.action_setings:
image_cats.setImageResource(R.drawable.cat);
break;
case R.id.action_cat:
image_cats.setImageResource(R.drawable.cat_2);
break;
case R.id.action_pes:
iimage_cats.setImageResource(R.drawable.cat_3);
break;
}
Ответы (1 шт):
Автор решения: Krasavchik
→ Ссылка
// Вот нашел еще один способ который сохраняет текст, но нужно такой же, только изображение. Этот способ, сохраняет любые изменения в тексте и при включении приложения они подгружаются.
// Например если сделать смену картинки по кнопке в реальном времени, то можно было бы этим способом подгружать ее при каждом открытии приложения. Но на изображение я такой код не нашел.
loadText();
private void saveText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
SharedPreferences.Editor ed = sPref.edit();
ed.putString(SAVED_TEXT, nik.getText().toString());
ed.commit();
}
private void loadText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
String savedText = sPref.getString(SAVED_TEXT, "");
nik.setText(savedText);
}