我设法在Android应用中创建了一个实例变量类,以保存一堆ImageView
的可见性状态。无论如何,可以使用SharedPreferences
或其他方式永久保存此变量吗?即使用户重新启动应用程序,我也需要加载状态。
ImageState.java
public class ImageState {
//some variables here
public ImageState(Context context, int[] imageId, int space){
//blah blah...
}
public void saveState(){
//saving visibility to shared preferences
}
public void loadState(){
//loading state
}
}
MainActivity.java
public void save(View view){
//initializing variables here
//creating ImageState
ImageState imageState = new ImageState(this, ids, count);
imageState.saveState();
}
public void load(View view){
if(ImageState!=null) ImageState.loadState();
}
如何保存imageState
?
答案 0 :(得分:0)
您只能永久保存原始数据。整数,字符串可以存储,但是上下文不能存储在SharedPrefs中。我建议您将所有原语保存在SharedPreferences中,然后使用SharedPreferences中的新上下文和数据重新初始化ImageState。使用此代码将数据存储在sharedprefs中
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME,
MODE_PRIVATE).edit();
editor.putInt("space", space);
editor.apply();
如果要存储整数数组,请参考此答案https://stackoverflow.com/a/47120128/4260786