猿问

共享首选项图像视图更改

我创建了一个通过输入密码来更改图像的应用程序。我想在关闭应用程序后将其存储。所以我尝试使用共享首选项。但是我失败了……为什么下面的代码不能工作?


(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>



千巷猫影
浏览 115回答 1
1回答

慕姐8265434

您需要在onCreate您的活动中使用此信息更新您的视图。您有一个代码可以点击图像资源,如果您在共享首选项中对“原始”有偏好,您可以将它们存储在 String 中original。但是你需要setImageResource在你的视图上使用它才能工作。onCreate所以解决方案是在需要更新值的地方或任何地方使用代码:original.setImageResource(*value&nbsp;taken&nbsp;from&nbsp;SharedPrefs*);更新:您正在保存您的图像资源,但如果您只想保存您可能想要保存的资源original.getImageResource()。要在下次打开应用程序时将此图像放回 imageView,您需要使用preferences.getString().然后你需要在你的活动onCreate()方法中设置图像可绘制,这样如果你设置original之前的值并且将值作为可绘制地址original.setImageResource()传递,它就会显示。intPS图片指针保存在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);
随时随地看视频慕课网APP

相关分类

Java
我要回答