Я пишу приложение, в котором я должен сохранить состояние Activity
. У меня есть ImageView
и Button
на экране. Когда я нажимаю на Button
ImageView
, измените фоновое изображение. Моя проблема в том, что когда я останавливаю Activity
и снова запускаю его, ImageView
показывает первое изображение. Я преобразовал свое изображение в String
с Base64. Затем я сохранил строку с SharedPreferences
. После этого я получил его и снова декодировал с Base64. У меня нет сообщения об ошибке, но оно не работает. Я копирую свой код, и если у кого есть идея, как это сделать, ответьте!Сохранить изображение как строку с SharedPreferences
public static final String IMAGE = "Image";
public static final String DB_INIT = "DB_INIT";
Button button;
ImageView imageview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences sp = getApplicationContext().getSharedPreferences(
DB_INIT, MODE_PRIVATE);
String backimage = sp.getString(IMAGE, "res/drawable/my_image.png");
button = (Button) findViewById(R.id.button1);
imageview = (ImageView) findViewById(R.id.imageview);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imageview.setBackgroundResource(R.drawable.szaz);
}
});
}
@Override
protected void onStop() {
SharedPreferences sp = getApplicationContext().getSharedPreferences(
DB_INIT, MODE_PRIVATE);
SharedPreferences.Editor et = sp.edit();
et.putString(IMAGE,"res/drawable/my_image.png");
et.commit();
super.onStop();
}
}
Мой вопрос ... ** почему **? вы можете просто сохранить ** путь изображения **. –
Я попытался сохранить его, и после того, как он не сработал, я попробовал другой способ. Я не нашел, как сохранить путь изображения. Не могли бы вы рассказать мне, пожалуйста? –
Это путь ** более простой ** и ** более эффективный **, чем сохранение целого изображения в виде представления ASCII. –