Проверка входа при каждом клике

У меня есть список, состоящий из изображений. Теперь я хочу проверить, вошел ли пользователь в систему или нет для каждого щелчка изображения.

Вот CustomStatusGrid.java:

пакет com.example.kalpesh.statuscollection.Status.Adapter;

импортировать java.util.ArrayList;

импортировать статический com.example.kalpesh.statuscollection.LoginActivity.MY_PREFS_NAME;

/** * Создано Kalpesh 9.12.2017. */

открытый класс CustomStatusGrid расширяет BaseAdapter {

private Context mContext;
ArrayList<StatusFrmCatResponse_Model> arrayList = new ArrayList<>();

public static final String MY_PREFS_NAME = "MyPrefsFile";
protected static final SharedPreferences settings = null;


public CustomStatusGrid(Context c, ArrayList<StatusFrmCatResponse_Model> arrayList) {
    mContext = c;
    this.arrayList = arrayList;



}


public int getCount() {
    // TODO Auto-generated method stub
    return arrayList.size();
}


public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
}


public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}



public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View grid;
    LayoutInflater inflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (convertView == null) {

        grid = new View(mContext);
        grid = inflater.inflate(R.layout.grid_status, null);


        TextView txt_StatusName = (TextView) grid.findViewById(R.id.txt_StatusName);
        txt_StatusName.setText(arrayList.get(position).getStatusName());

        //TextView txt_status = (TextView) grid.findViewById(R.id.txt_StatusId);

        //final String StatusID =txt_status.toString();



        ImageView imageClick = (ImageView) grid.findViewById(R.id.ImgAddtoFav);

        imageClick.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View v)
            {







            }



        });

    }

    else {
        grid = (View) convertView;
    }

    return grid;
}

}

Вот LoginActivity.java:

открытый класс LoginActivity расширяет AppCompatActivity, реализует View.OnClickListener {

ArrayList<LoginUserResponse_Model> arrayList=new ArrayList<>();

private static final String TAG = LoginActivity.class.getSimpleName();

private EditText editTextUsername, editTextPassword;

private UserInfo userInfo;
private Session session;
private Button login;

public static final String MY_PREFS_NAME = "MyPrefsFile";
protected static final SharedPreferences settings = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    editTextUsername = (EditText) findViewById(R.id.email);
    editTextPassword = (EditText) findViewById(R.id.password);

    userInfo        = new UserInfo(this);

    login           = (Button)findViewById(R.id.login);

    login.setOnClickListener(this);

    findViewById(R.id.link_Register).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //if user pressed on login
            //we will open the login screen
            finish();
            startActivity(new Intent(LoginActivity.this, RegisterActivity.class));
        }
    });
}

private void login(final String email, final String password){


    final String username = editTextUsername.getText().toString();
    final String password1 = editTextPassword.getText().toString();

    //validating inputs
    if (TextUtils.isEmpty(username))
    {
        editTextUsername.setError("Please enter your Email");
        editTextUsername.requestFocus();
        return;
    }

   /* if (!android.util.Patterns.EMAIL_ADDRESS.matcher(Email).matches()) {
        email.setError("Enter a valid email");
        email.requestFocus();
        return;
    }*/

    if (TextUtils.isEmpty(password1))
    {
        editTextPassword.setError("Please enter your password");
        editTextPassword.requestFocus();
        return;
    }
    // Tag used to cancel the request
    String tag_string_req = "req_login";
    //progressDialog.setMessage("Logging in...");
    // progressDialog.show();

    String URL = "http://api.statuscollection.in/api/login";
    StringRequest strReq = new StringRequest(Request.Method.POST,
            URL, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            Log.wtf(TAG, "Login Response: " + response.toString());


            try {
                JSONObject jsonObject = new JSONObject(response);
                JSONObject datajsonObject = jsonObject.getJSONObject("data");
                LoginUserResponse_Model getDetailStatusModel= new LoginUserResponse_Model();
                getDetailStatusModel.setCostamarId(datajsonObject.getString("CostamarId"));
                getDetailStatusModel.setEmail(datajsonObject.getString("Email"));
                getDetailStatusModel.setPassword(datajsonObject.getString("Password"));

                String CostamarId = getDetailStatusModel.setCostamarId(datajsonObject.getString("CostamarId"));

                Log.wtf("LoginActivity", "CostamarId " + datajsonObject.getString("CostamarId"));
                Log.wtf("LoginActivity", "Email " + datajsonObject.getString("Email"));
                Log.wtf("LoginActivity", "Password " + datajsonObject.getString("Password"));
                Toast.makeText(LoginActivity.this, "You are Login Successfuly !!!", Toast.LENGTH_LONG).show();
                // String CID =arrayList.get(CostamarId);

                SharedPreferences settings = getSharedPreferences(MY_PREFS_NAME, 0);
                SharedPreferences.Editor editor = settings.edit();
                editor.putBoolean("logged", true);
                // set it to false when the user is logged out

                editor.putString("CostamarId",CostamarId);

                // Commit the edits!
                editor.commit();

                SharedPreferences.Editor editor1 = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();

                editor1.putString("CostamarId",CostamarId);



                Intent intent = new Intent(LoginActivity.this,ForgetPasswordActivity.class);
                //intent.putExtra("CUSTID",CostamarId);
                startActivity(intent);
                finish();

            } catch (JSONException e) {
                // JSON error
                e.printStackTrace();
                toast("Json error: " + e.getMessage());
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Login Error: " + error.getMessage());
            toast("Unknown Error occurred");
            //progressDialog.hide();
            //progressDialog.hide();
            //progressDialog.hide();
            //progressDialog.hide();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to login url
            Map<String, String> params = new HashMap<>();
            params.put("email", email);
            params.put("password", password);
            return params;
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<>();

// headers.put("Content-Type", "application/x-www-form-urlencoded"); headers.put ( "Проверка подлинности", "5vLGpxfO4_FktAkPB0iM - FQh18USYEG7LWWUCbITpGioOZ16QRxe0JuoryqhMHArMcv-lBleaddcJPG3bsj3m94qOke3uq3mXDtvPUZHFkqm9_3Eub7MYlVCudtd8i_qxnFYQFVV8OTNfQ4w01vDjwBvJI2zVUXl8M-A9YfH09sPslbJKyZUBZBNcAqjSOzeIneaNVPH0WWcBP9xx_GvsvISNLWAM1KWlSia5Kb7Glj2ufmdZwl_XE5h1C_0guL5AkJniyLK1cCFjOXH7dgjJA6vjwgc0ol488TyWPWA19sOzsdPrnuzr724-BK3Z84"); заголовки возврата; }

        @Override
        public String getBodyContentType() {
            return "application/x-www-form-urlencoded; charset=UTF-8";
        }


    };

    strReq.setRetryPolicy(
            new DefaultRetryPolicy(
                    DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
                    0,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


    // Adding request to request queue
    MySingleton.getInstance(LoginActivity.this).addToRequestQueue(strReq);
}

private void toast(String x){ Toast.makeText(this, x, Toast.LENGTH_SHORT).show();}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.login:
            String uName = editTextUsername.getText().toString().trim();
            String pass  = editTextPassword.getText().toString().trim();
            login(uName,pass);
            break;
        case R.id.buttonRegister:
            startActivity(new Intent(this, RegisterActivity.class));
            break;
    }
}


public void Login_cancel(View view) {

    editTextUsername.setText("");
    editTextPassword.setText("");
}

}


person Kalpesh Khandla    schedule 13.12.2017    source источник
comment
Хорошо. Где ты застрял? Я хочу — это не вопрос и не описание проблемы   -  person OneCricketeer    schedule 13.12.2017
comment
stackoverflow.com/a/13910415/3395198   -  person IntelliJ Amiya    schedule 13.12.2017
comment
@cricket_007 cricket_007 Я использую CustomStatusGrid.java, который является классом, а не активностью. поэтому я немного запутался, как сделать то же самое в этом классе ??   -  person Kalpesh Khandla    schedule 13.12.2017
comment
У вас есть объект Context... Зачем вам Activity?   -  person OneCricketeer    schedule 13.12.2017
comment
Вы также можете использовать свой класс Singleton для хранения SharedPreferences или статуса пользователя.   -  person OneCricketeer    schedule 13.12.2017
comment
@cricket_007 Я начинающий разработчик, и я никогда не пробовал ничего подобного раньше. Было бы, если бы вы могли указать мне направление.   -  person Kalpesh Khandla    schedule 13.12.2017
comment
Попробуйте прочитать документацию по классу Context. Существует метод, которым вы можете получить свой объект SharedPreferences, где существует ваша информация для входа.   -  person OneCricketeer    schedule 13.12.2017
comment
@cricket_007 Спасибо...   -  person Kalpesh Khandla    schedule 13.12.2017