简体   繁体   中英

Unable to move on next Activity from fragment by using Intent in Volley Library

I am trying to login by using volley library. I have used SharedPrefrences to store User name,email,mobile. When I am using correct mobile no. and password. Toast is generating to login successful but not able to move Login Fragment to Dashboard Activity.

Here is the Code of login method

private void login(String login_url, final String getLoginMob, final String getLoginPwd) {

    //Progress Dialog code
    final Dialog dialog =new Dialog(getActivity());
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.loading_dialog);
    dialog.setCancelable(false);
    dialog.show();

    RequestQueue queue = Volley.newRequestQueue(getActivity());
    StringRequest postrequest = new StringRequest(Request.Method.POST, login_url, new Response.Listener<String>() {


        @Override
        public void onResponse(String response) {
            dialog.dismiss();

            try {
                JSONObject jsonObject = new JSONObject(response);

                if (jsonObject.getBoolean("success") == true ) {
                    Toast.makeText(getActivity(),jsonObject.getString("message"),Toast.LENGTH_LONG).show();

                    JSONObject jsonObjectInfo=jsonObject.getJSONObject("User");
                    sharedPrefrence_main.setName(jsonObjectInfo.getString("name"));
                    sharedPrefrence_main.setEmail(jsonObjectInfo.getString("email"));
                    sharedPrefrence_main.setMobile_no(jsonObjectInfo.getString("mobile"));

                    Intent intent=new Intent(getActivity(), Dashboard.class);
                    startActivity(intent);


                } else if (jsonObject.getBoolean("success") == false) {
                    Toast.makeText(getActivity(), jsonObject.getString("message"), Toast.LENGTH_LONG).show();
                }
                else
                    Toast.makeText(getActivity(),"Entries are wrong",Toast.LENGTH_LONG).show();


            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
            dialog.dismiss();
        }
    }){
        @Override
        protected Map<String, String> getParams(){
            Map<String,String> param=new HashMap<String, String>();
            param.put("mobile_email", getLoginMob);
            param.put("password", getLoginPwd);
            return param;

        }
    };

    int socketTimeout = 30000;
    RetryPolicy policy = new DefaultRetryPolicy(socketTimeout,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
    postrequest.setRetryPolicy(policy);
    queue.add(postrequest);

}

JSON Response

{"success":"true","message":"Login Sucessfully","User":[{"name":"satishkanaujiya ","email":"*****@gmail.com","mobile":"901589****"}]}

  runOnUiThread(new Runnable() {
        @Override
        public void run() {
            //Type your Intent code here
        }
    });

OR

Use LocalBraodcastManager: Use this link: how to use LocalBroadcastManager?

This is an array and I was treating it as objects. Finally I corrected my mistakes by following codes.

                JSONArray jsonArrays=jsonObject.getJSONArray("User");
                for(int i=0;i<jsonArrays.length();i++){
                 JSONObject jsonObject1=jsonArrays.getJSONObject(i);
                    sharedPrefrence_main.setName(jsonObject1.getString("name"));
                    sharedPrefrence_main.setEmail(jsonObject1.getString("email"));
                    sharedPrefrence_main.setMobile_no(jsonObject1.getString("mobile"));

                }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM