我尝试保存userid以在其他Activity中使用它,但我无法从try catch语句中获取值。我应该提一下,我是Android新手。 (此外,AlertDialog无法正常工作,但这并不重要)。谢谢你的帮助!
编辑:我刚刚发现了这一点:下面的代码是针对" First Screen" (在应用程序的第一次启动时显示),点击按钮后,您将进入MainActivity。如果我在第一个屏幕打开MainActivity后关闭应用程序,然后再次打开它,则SharedPreferences正常运行。
button = (Button) findViewById(R.id.savebtn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
next_page(v);
}
});
}
public void next_page(View v){
final String firstname1 = firstnameFS.getText().toString();
final String lastname1 = lastnameFS.getText().toString();
Response.Listener<String> responseListener = new Response.Listener<String>(){
@Override
public void onResponse(String response){
try{
JSONObject jsonResponse = new JSONObject(response);
boolean success =jsonResponse.getBoolean("success");
int userid = jsonResponse.getInt("userid");
if(success){
AlertDialog.Builder builder3 = new AlertDialog.Builder(FirstScreen.this);
builder3.setMessage("Updated! Id:"+userid);
builder3.create().show();
SharedPreferences mySPR = getSharedPreferences("MySpFile", MODE_PRIVATE);
SharedPreferences.Editor editor = mySPR.edit();
editor.putString("firstnameSP", firstname1);
editor.putInt("useridSP", userid);
editor.commit();
}else{
AlertDialog.Builder builder = new AlertDialog.Builder(FirstScreen.this);
builder.setMessage("Update Failed");
builder.create().show();
}
} catch (JSONException e){
e.printStackTrace();
}
}
};
RegisterRequestFS registerRequestFS =new RegisterRequestFS(firstname1,lastname1, responseListener);
RequestQueue queue = Volley.newRequestQueue(FirstScreen.this);
queue.add(registerRequestFS);
答案 0 :(得分:0)
只需在if(成功)块中移动您的共享首选项编辑命令。 在共享首选项中提交useridSP后,使用以下代码检索它:
SharedPreferences mySPR = getSharedPreferences("MySpFile", MODE_PRIVATE);
mySPR.getInt("useridSP",-1);
-1值保持默认值,因此请注意,如果在新活动中为useridSP获得-1,则表示您做错了