Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 共享首选项图像视图更改_Java_Android Studio_Sharedpreferences - Fatal编程技术网

Java 共享首选项图像视图更改

Java 共享首选项图像视图更改,java,android-studio,sharedpreferences,Java,Android Studio,Sharedpreferences,我创建了一个通过输入密码来更改图像的应用程序。我想在关闭应用程序后将其存储。所以我试着和大家分享我的偏好。但是我失败了。。。为什么下面的代码不能工作 PS 我上传我的主要活动代码。如果您需要其他活动或布局来回答我的问题,请告诉我 MainActivity.java .s0{ 颜色:cc7832; } .s1{ 颜色:a9b7c6; } .s2{ 颜色:6a8759; } .s3{ 颜色:8080; } .ln{ 颜色:606366; 字体大小:正常; 字体风格:普通; } MainActivi

我创建了一个通过输入密码来更改图像的应用程序。我想在关闭应用程序后将其存储。所以我试着和大家分享我的偏好。但是我失败了。。。为什么下面的代码不能工作

PS 我上传我的主要活动代码。如果您需要其他活动或布局来回答我的问题,请告诉我

MainActivity.java .s0{ 颜色:cc7832; } .s1{ 颜色:a9b7c6; } .s2{ 颜色:6a8759; } .s3{ 颜色:8080; } .ln{ 颜色:606366; 字体大小:正常; 字体风格:普通; } MainActivity.java
您需要在创建活动时使用此信息更新视图

您有一个代码,可以单击图像资源,如果共享首选项中的首选项为original,则将它们存储在String original中。但是,您需要在视图上使用setImageResource使其工作

因此,解决方案是在onCreate或任何需要更新值的地方使用代码:

SharedPreferences preferences = getSharedPreferences("save", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("original", R.drawable.correct);
editor.commit();
更新:

您正在保存图像资源,但如果只想保存资源,可能需要保存original.getImageResource

要在下一个应用程序打开时将此图像返回到imageView,您需要使用preferences.getString获取此资源

然后,您需要在activity onCreate方法中设置image drawable,以便在使用original.setImageResource之前设置原始值并将int值作为drawable address传递时显示

注意:图像指针保存在int而非String中,因此请正确保存:

SharedPreferences preferences = getSharedPreferences("save", MODE_PRIVATE);
int imageUrl = preferences.getInt("original", *default_value*);
original.setImageResource(imageUrl);
明白了吗


请在问题中发布实际代码,而不是链接它的照片。我想。。。但我试着上传一个HTML文件,但我不断地出错。那不是HTML文件,而是java文件。从那里复制代码,然后用三个反勾来粘贴问题,``这里的代码``我修改我的问题。是这样吗?你不明白@weegee让你发布你放在屏幕截图上的代码。嗯。。。我不太明白。。。所以你说我输入你在上面输入的代码?????很抱歉。@jjym请给我一点时间详细解释一下。据我所知,我必须修改onCreate的一些代码。但我不太明白我需要如何修改这些代码。……如果您不理解,您可能需要搜索教程或指南。未来的提示是,发布代码,而不是代码的图像。
SharedPreferences preferences = getSharedPreferences("save", MODE_PRIVATE);
int imageUrl = preferences.getInt("original", *default_value*);
original.setImageResource(imageUrl);