为了账号安全,请及时绑定邮箱和手机立即绑定

共享首选项图像视图更改

共享首选项图像视图更改

千巷猫影 2023-06-04 16:49:35
我创建了一个通过输入密码来更改图像的应用程序。我想在关闭应用程序后将其存储。所以我尝试使用共享首选项。但是我失败了……为什么下面的代码不能工作?(PS我上传了我的MainActivity的代码。如果你需要其他活动或布局来回答我的问题,然后说我)<html><head>  <title>MainActivity.java</title>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <style type="text/css">    .s0 {      color: #cc7832;    }        .s1 {      color: #a9b7c6;    }        .s2 {      color: #6a8759;    }        .s3 {      color: #808080;    }        .ln {      color: #606366;      font-weight: normal;      font-style: normal;    }  </style></head><body bgcolor="#2b2b2b">  <table CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#606060">    <tr>      <td>        <center>          <font face="Arial, Helvetica" color="#000000">            MainActivity.java</font>        </center>      </td>    </tr>  </table>
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您需要在onCreate您的活动中使用此信息更新您的视图。

您有一个代码可以点击图像资源,如果您在共享首选项中对“原始”有偏好,您可以将它们存储在 String 中original。但是你需要setImageResource在你的视图上使用它才能工作。

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

original.setImageResource(*value taken from SharedPrefs*);

更新:

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

  2. 要在下次打开应用程序时将此图像放回 imageView,您需要使用preferences.getString().

  3. 然后你需要在你的活动onCreate()方法中设置图像可绘制,这样如果你设置original之前的值并且将值作为可绘制地址original.setImageResource()传递,它就会显示。int

PS图片指针保存在int不是String这样保存正确:

SharedPreferences preferences = getSharedPreferences("save", MODE_PRIVATE);

SharedPreferences.Editor editor = preferences.edit();

editor.putInt("original", R.drawable.correct);

editor.commit();

并得到它


SharedPreferences preferences = getSharedPreferences("save", MODE_PRIVATE);

int imageUrl = preferences.getInt("original", *default_value*);

original.setImageResource(imageUrl);


查看完整回答
反对 回复 2023-06-04
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信