【发布时间】:2017-08-15 19:43:05
【问题描述】:
我是一个新手,我正在开发具有登录活动的 android 应用程序,当用户成功登录时,它会返回以下 JSON 响应
[{
"id" : 3,
"username" : "test"
}]
我想将“id”存储在SharedPreferences 中并在整个应用程序中使用它。
这是我的登录活动代码:
JSONArray jArray = new JSONArray(s);
for (int i = 0; i < jArray.length(); i++) {
JSONObject post = jArray.optJSONObject(i);
user_id = post.getString("id");
SharedPreferences sp=getApplicationContext().getSharedPreferences("usersinfos", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString("userid", user_id );
editor.commit();
}
这是我的个人资料活动
SharedPreferences sp = getActivity().getSharedPreferences("usersinfos",Context.MODE_PRIVATE);
String user_id= sp.getString("userid", "");
Toast.makeText(getActivity(),user_id , Toast.LENGTH_LONG).show();
Toast 给出的结果是空的。
【问题讨论】:
-
您是否确认您实际保存了您认为保存的内容?也许你应该为保存部分添加一个 toast 以确保。
-
先尝试在 SharedPreferences 中手动保存一些东西,而不是从 JSONObject 中获取它。然后,看看你是否在 Toast 中看到它。这样你就可以看到问题是解析 JSON 字符串还是 SharedPreferences 的问题。
-
我试过了,效果很好
-
你能在这行显示
s的值吗?JSONArray jArray = new JSONArray(s); -
是的,我可以得到 s 的值
标签: java android json sharedpreferences