问题描述
我有一个 ImageView ImageView1
,它的背景可以由用户设置。如何保存该背景的状态,以便当用户关闭应用并重新打开它时,ImageView1
的背景仍然相同?
是否可以使用 onSaveInstanceState
或者我是否必须写一些不同的东西,如果是这样:我该怎么做?
现在我有:
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("ImageView1",imageView1);
但是 imageView1
得到红色下划线,即使之前声明为 ImageView 的 id
解决方法
您可以使用共享首选项:
- 在更改时保存到共享首选项。
- 从应用重新打开时的共享首选项获取。
查看文档了解更多信息: https://developer.android.com/training/data-storage/shared-preferences
,您可以按如下方式使用 SharedPreferences:
SharedPreferences sharedPreferences;
sharedPreferences = getSharedPreferences("data",0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("image",//put image path here);
editor.apply();
然后重写onResume方法如下
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getSharedPreferences("data",0);
String imagePath = sharedPreferences.getString("image",""); //default value is empty
}
然后使用 picasso 或 glide like 加载图像..
Picasso.get().load(imagePath).into(imageview);