Android:JSONObject / responseListener中的值

时间:2018-02-20 13:21:03

标签: android json sharedpreferences response

我尝试保存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);

1 个答案:

答案 0 :(得分:0)

只需在if(成功)块中移动您的共享首选项编辑命令。 在共享首选项中提交useridSP后,使用以下代码检索它:

SharedPreferences mySPR = getSharedPreferences("MySpFile", MODE_PRIVATE);
mySPR.getInt("useridSP",-1);

-1值保持默认值,因此请注意,如果在新活动中为useridSP获得-1,则表示您做错了