Получение позиции значения textview в recyclerview Android

#java #android #android-recyclerview

#java #Android #android-recyclerview

Вопрос:

У меня есть список элементов mutliple. в моем списке каждый элемент содержит статус, который может быть 1 или 2. у меня также есть две кнопки, одна из которых подтверждает, что она завершена. Теперь я хочу скрыть кнопку завершения, если статус равен 2, и скрыть кнопку подтверждения, если статус равен 1. Но он проверяет только статус первого элемента. Пожалуйста, помогите

     @Override
public void onBindViewHolder(@NonNull Fmb2borderadapter.orderfmholder holder, int position) {
    Fmordermodel fmordermodel = fmsarr.get(position);
    holder.assignOrderNbr.setText(fmordermodel.getAssignOrderno());
    holder.assignCustomerID.setText(fmordermodel.getOrder_unique_id());
    holder.assignOrderDate.setText(fmordermodel.getAssignOrderDate());
    holder.tv_status.setText(fmordermodel.getStatus());
    status = fmordermodel.getStatus();
    holder.tv_status.setTag(position);
    status = fmordermodel.getStatus();

   // holder.tv_status.setVisibility(holder.tv_status.getTag(position)=="2"?View.VISIBLE:View.GONE);


    if (holder.tv_status.toString() ==  "2" ){
        holder.tv_complete.setVisibility(View.VISIBLE);
        holder.tv_confrim.setVisibility(View.GONE);
    }else{
        holder.tv_complete.setVisibility(View.GONE);
        holder.tv_confrim.setVisibility(View.VISIBLE);
    }


}
  

Ответ №1:

Вам необходимо изменить if-block следующее:

 if (holder.tv_status.getText().toString().equals("2")) {
    //...
}
  

Вы отбросили getText() метод. Кстати, не используйте == operator для сравнения String значений, если вы не хотите проверять ссылки. Используйте equals() вместо этого для эффективного сравнения двух String значений.

Ответ №2:

Попробуйте заменить эту строку

 if (holder.tv_status.toString() ==  "2" ){
  

с помощью этой строки

 if (holder.tv_status.toString().equals("2" ){
  

Комментарии:

1. Отсутствует «)», извините, я не могу его отредактировать

2. я пытался, но моя проблема в том, что он не будет проверять статус всех элементов. теперь он проверяет статус только 1-го элемента, а статус первого элемента равен 2, поэтому он скрывает завершенную кнопку из всех элементов, но я хочу скрыть только там, где статус равен 2