我使用shared preferences
存储一些图片缩略图,这些缩略图如下所示:
"image:\/\/http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fwBtEVh8Q5dglfjyulGZtgXVy9qi.jpg\/"
和:
"image:\/\/http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fojgf8iJpS4VX6jJfWGLpuEx0wm.jpg\/"
我发现当把一些常规的String
放入其中时它会有效地工作,我可以毫无问题地得到它(这使我确保我的代码没有任何问题),但是当放下这些缩略图并尝试将其取回它无法找到它。那么,String
没有采用SharedPreferences
格式吗?
这是我的代码(如果需要):
放置:
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putString(thumbnail, "some string");
editor.commit();
得到:
String def_value = sharedPreferences.getString(thumbnail, "value");
答案 0 :(得分:1)
在Java中,\
之前的任何字符都被视为转义字符。例如,\n
是表示新行的转义字符。在以下字符串中;
"image:\/\/http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fojgf8iJpS4VX6jJfWGLpuEx0wm.jpg\/"
\/
是非法转义字符(即,它并不意味着什么)。所以,如果你真的想要那两个角色,你需要的是反斜杠的转义字符(\\
),后跟正斜杠,看起来像\\/
。
鉴于你的字符串看起来像网址,我想你实际上寻找的东西根本不需要转义字符,可能就像这样。
"image://http%3a%2f%2fimage.tmdb.org%2ft%2fp%2foriginal%2fojgf8iJpS4VX6jJfWGLpuEx0wm.jpg/"
答案 1 :(得分:0)
尝试使用此功能(来自this):
放:
// provide the app package name
SharedPreferences prefs = this.getSharedPreferences(
"com.example.app", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putString("thumbnail", "some string");
editor.commit();
获取:
SharedPreferences sharedPreferences = getSharedPreferences("com.example.app", Activity.MODE_PRIVATE);
String def_value = sharedPreferences.getString("thumbnail", "value");