Я создал очень простую аутентификацию для щелчка по адаптеру. например, когда пользователь нажимает на элемент, «телефон» будет отправлен в базу данных, и при подтверждении Toast покажет «Да». в противном случае Toast покажет «Нет!».
Но когда приложение запускается в первый раз при нажатии на элемент (если метод отвечает «ok») Toast No !. Но после некоторого прокрутки страницы и повторного нажатия на элемент Toast показывает Да. На самом деле сначала, когда приложение запускается, ответ не показывает никакого значения, но после прокрутки страницы он покажет значение.
Я полностью запутался. Спасибо за помощь.
часть моего адаптера
@Override
public void onBindViewHolder(@NonNull viewHolder viewHolder, int i) {
Model modelPost = this.modelPost.get(i);
viewHolder.cardView.setOnClickListener(v -> {
check();
if (access == null) {
Toast.makeText(context, "No!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Yes", Toast.LENGTH_SHORT).show();
}
});
Мой метод внизу страницы
private void check() {
String url = "https://example.com/index.php";
Response.Listener<String> listener = response -> {
if (response.trim().equals("ok")) {
access = "1";
}
};
Response.ErrorListener errorListener = error -> Toast.makeText(context, "error", Toast.LENGTH_SHORT).show();
StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
@Override
protected Map<String, String> getParams() {
Map<String, String> map = new Hashtable<>();
map.put("User", phone);
return map;
}
};
MySingleton.getInstance(context).addToRequestQueue(request);
}