Залп и сеансы - PullRequest
       11

Залп и сеансы

0 голосов
/ 01 июня 2018

Я хочу сохранить нижеприведенный jsonArray в сеансе во время входа в систему и обращаться к элементам один за другим позже, когда это необходимо в другом действии.Я полностью сбит с толку.После успешного входа в систему я получаю указанные ниже данные.Как мне это сделать?Это моя страница входа

public class Login extends AppCompatActivity {
String mobile, password;
TextView forgot_password;
EditText mobile_num,pass;
Button log_btn;
AlertDialog.Builder builder;
private Session session;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    Login.this.setTitle("Vendor Screen");
    builder = new AlertDialog.Builder(Login.this);
    forgot_password = findViewById(R.id.forgot_pwd);
    log_btn = findViewById(R.id.login_btn);
    mobile_num = findViewById(R.id.mobile);
    pass = findViewById(R.id.password);
    forgot_password.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent(Login.this,Forgot_password.class);
            startActivity(i);
        }
    });

    //Login Page
    log_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ConnectivityManager ConnectionManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = ConnectionManager.getActiveNetworkInfo();
            if (networkInfo != null && networkInfo.isConnected() == true) {
                mobile = mobile_num.getText().toString();
                password = pass.getText().toString();
                String url = "https://vendorapp.web4rest.com/vendorController/auth?username=" + mobile + "&password=" + password;
                if (mobile.equals("") || password.equals("")) {
                   builder.setTitle("Something went wrong!!");
                    displayAlert("Enter valid mobile number and password");
                }else{
                    final ProgressDialog progressDialog = new ProgressDialog(Login.this);
                    progressDialog.setMessage("Please Wait...");
                    progressDialog.show();
                    StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                    try {
                                        progressDialog.dismiss();
                                        JSONObject jobject = new JSONObject(response);
                                        if (Integer.parseInt(jobject.getString("status")) == 200) {
                                            Toast.makeText(getApplicationContext(), "Login Success", Toast.LENGTH_LONG).show();
                                           Intent i = new Intent(Login.this, MainActivity.class);
                                            startActivity(i);
                                            finish();
                                        } else {
                                            Toast.makeText(getApplicationContext(), "Login Unsuccessfull. Check mobile number/password", Toast.LENGTH_LONG).show();
                                        }

                                    } catch (JSONException e) {
                                        progressDialog.dismiss();
                                        Log.e("Error", "Login Failed" + e.toString());
                                        e.printStackTrace();
                                        Toast.makeText(Login.this, "Error", Toast.LENGTH_SHORT);
                                    }
                                }
                            }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            progressDialog.dismiss();
                            Toast.makeText(Login.this, "Error", Toast.LENGTH_SHORT);
                            error.printStackTrace();
                        }
                    }) {
                        @Override
                        protected Map<String, String> getParams() throws AuthFailureError {
                            Map<String, String> parmams = new HashMap<String, String>();
                            parmams.put("username", mobile);
                            parmams.put("password", password);

                            return parmams;
                       }

                    };
                    MySingleton.getInstance(Login.this).addToRequestque(stringRequest);
                }
            }else {
                Toast.makeText(Login.this, "Network Unavailable", Toast.LENGTH_LONG).show();
            }
        }
    });
}
public void displayAlert(String message){
    builder.setMessage(message);
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int which) {
            mobile_num.setText("");
            pass.setText("");
        }
    });
    AlertDialog alertDialog =builder.create();
    alertDialog.show();
}

{"status": 200, "userdata": {"ID": "2", "FIRM_NAME": "Название компании", "CONTACT_NO": "7458236965", "FIRM_EMAIL": "comp@gmail.com", "STATE": "Karnataka", "CITY": "Anantapur", "ADDRESS_LINE1": "dgsdfgsdf", "ADDRESS_LINE2": null, "TYPE": "UNREG", "CATEGORY_ID": "1", "REG_NO": пусто, "GST_NO": пусто, "ECC_CODE": "744411228528", "PAN_NO": "7455852125", "FAX_NO": "741258963", "PIN_CODE": "590006 "," CONTACT_PERSON ":" Ashwini "," PERSON_EMAIL ":" koustubhc@web4rest.com "," PERSON_MOBILE ":" 7798671682 "," BANK ":" Аллахабадский банк "," IS_DELETE ":" 0 "," IFSC_COD":" ALLB00006 "," ФИЛИАЛ ":" Аллахбад "," ACCOUNT_NO ":" 033252122522 "," INITIAL_PASS ":" PUTLANvq "," ПАРОЛЬ ":" fd2811b88d59df925f1a265911ffc539 "," 69 ":" OAT ":" OTP ":"2018-05-31 13:02:40", "UPDATED_AT": "2018-05-14 08:59:10", "status": "login"}}

1 Ответ

0 голосов
/ 01 июня 2018

Вы можете следовать этой основной идее:

if (Integer.parseInt(jobject.getString("status")) == 200 {
    ...
    SharedPreferences preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor editor = preferences.edit();

    var userData = jobject.getObject("userdata");
    editor.putInt("ID", userData.getInt("ID"));
    editor.putString("FIRM_NAME", userData.getString("FIRM_NAME"));
    // etc...
    editor.commit();
    ...
}

Тогда в вашей другой деятельности:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
var id = preferences.getInt("ID", -1);
var firmName = preferences.getString("FIRM_NAME", null);

Где -1 и null выше будут значения, указанные, еслинастройки не найдены.

...