关于android SharedPreferences无法写入文件的问题

低个子 2019-05-10 12:50:12


代码如图 会报错 显示集合里面没有对象 也就是这个方法没成功的进行写入,读取。麻烦看一下哪里有错误 谢谢
...全文
1414 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
day_moon 2019-05-19
  • 打赏
  • 举报
回复
先看下执行的流程,在看下保存的路径?
低个子 2019-05-17
  • 打赏
  • 举报
回复
哈哈哈 你是真的秀 我图都贴出来你说我不知道在哪??我知道在哪 只是哪里没有 我问的是为啥没有 好吗?? 有眼睛真好
jzp12 2019-05-13
  • 打赏
  • 举报
回复
连SP XML存储在哪都不知道,你写什么代码?
王能 2019-05-13
  • 打赏
  • 举报
回复
上图,debug已经很明显取出来了
王能 2019-05-13
  • 打赏
  • 举报
回复
出现问题第一条:看日志 第二天:debug 你的没有日志,但问题已经很明显,直接debug不就行了 按照你写的,取出来正常,自行查找:1.list是否太大(sp文件不建议保存大量数据,数据比较打请使用数据库),2.你保存的list本身就是空的,3.json解析失败
低个子 2019-05-13
  • 打赏
  • 举报
回复
引用 12 楼 王能 的回复:
继续debug,看看有没有调用commit


我的文件目录下面就没有那个.xml文件啊
王能 2019-05-13
  • 打赏
  • 举报
回复
继续debug,看看有没有调用commit
低个子 2019-05-13
  • 打赏
  • 举报
回复
引用 10 楼 王能 的回复:

上图,debug已经很明显取出来了


可以用了 但是出现了软件关闭后重新开启数据依然丢失的情况
Unicode Escapes 2019-05-11
  • 打赏
  • 举报
回复

editor的apply方法中写清楚了,commit是同步方法,会等写入完成才执行,所以不存在上边几位讲的“不会等写完再读取,需要自己控制”问题。
现在代码遇到问题,从你给出的信息来看,只是你推测getstring没有获取到值,并没有给出更直接的证据。
所以建议,你去调试一下代码,是getstring的值有问题(这个可能性很小),还是string转换成json出了问题(可能性更大)

另外一点建议,除非是在调试方法,不然更好的写法是String listJson=jsonStr,而不是去sp.getstring
低个子 2019-05-10
  • 打赏
  • 举报
回复
引用 2 楼 jklwan 的回复:
sp写的过程去读取不会等写完再读取,需要自己控制
if(editor.commit()){
// 等写完再读取
}


我写了一个save()方法存储 一个put()方法读取
两个方法是在两个java文件里 那要怎么控制他们两个的顺序让先存储
低个子 2019-05-10
  • 打赏
  • 举报
回复
引用 1 楼 유 的回复:
commit 换成 apply试试

没用呢啊
jzp12 2019-05-10
  • 打赏
  • 举报
回复
xml中key生成没?
jklwan 2019-05-10
  • 打赏
  • 举报
回复
sp写的过程去读取不会等写完再读取,需要自己控制
if(editor.commit()){
 // 等写完再读取
}
2019-05-10
  • 打赏
  • 举报
回复
commit 换成 apply试试
jklwan 2019-05-10
  • 打赏
  • 举报
回复
引用 4 楼 低个子 的回复:
我写了一个save()方法存储 一个put()方法读取 两个方法是在两个java文件里 那要怎么控制他们两个的顺序让先存储
save完成再进行其他操作……
public boolean save (){
   .......
   return editor.commit();
}
使用的时候
if(save()){
...
读取
}
2019-05-10
  • 打赏
  • 举报
回复
你log看 你传的list有没有 数据啊?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧