У меня есть адаптер представления переработчика, который отображает список автомобилей (просмотры карт), и в представлении карты у меня есть кнопка, которая, когда пользователь нажимает, отправляет некоторые данные на сервер и возвращает ответ «true» или false;
Когда пользователь нажимает на кнопку, я скрываю кнопку и показываю индикатор выполнения, показывающий пользователю, что что-то происходит, кнопка вызывает другую функцию, у которой есть залповый вызов и ответ, затем у меня есть еще одна функция который проверяет ответ.
Я пытаюсь скрыть индикатор выполнения этого определенного c представления карты, когда получаю ответ и показываю сообщение с результатом, я передаю положение карты, но я не могу изменить указатель c.
Я попытался найти индикатор выполнения, выполнив.
Progressbar progres = findviewbyid (R.id .myprogressbar);
Но он находит индикатор выполнения последнего просмотра карты, а не тот, на котором она была нажата.
public void onBindViewHolder(@NonNull final CarViewHolder holder, final int position) {
final CartItem currentItem = _carList.get(position);
String name = currentItem.getCarName();
String date = currentItem.getCarDate();
String instructions = currentItem.getInstructions();
String description = currentItem.getInstructions2();
String carKey = currentItem.getKey();
holder.name.setText(name);
holder.date.setText("Date: " + date);
holder.instructions.setText(instructions);
holder.description.setText(description);
holder.carKey.setText(carKey);
holder.car_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.car_button.setVisibility(View.INVISIBLE);
carProgressBar.setVisibility(View.VISIBLE);
holder.car_button.setText("Thank you!");
holder.car_date.setText("");
holder.car_button.setClickable(false);
carDate(currentItem.getCarName(), currentItem.getKey(), position);
}
});
}
public void carDate(String name, String key, final int position) {
_Key = key;
Toast.makeText(mContext, "Thank you! - " + name, Toast.LENGTH_LONG).show();
String url = "url=key"+key;
JsonObjectRequest request = new JsonObjectRequest (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.e(TAG, "KEY RESPONSE: " + response + " : " + position);
try {
result = response.getString("result");
validateResponse(result, position);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
carQueue.add(request);
}
Здесь я пытаюсь чтобы скрыть индикатор выполнения и показать сообщение с ответом;
public void validateResponse(String result, int position) {
CarItem carItem = _carList.get(position);
if (result.equals("true")) {
Toast.makeText(mContext, "--> " + result + " <---", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(mContext, "--> " + result + " <---", Toast.LENGTH_LONG).show();
}
}