wseng Ответов: 1

Как объявить текст кнопки со счетчиком


У меня есть listView с флажком. Когда флажок установлен/снят, он будет подсчитывать и отображать число в сеттексте "кнопка ""Удалить". Если счетчик равен 0, то он будет отображать только "удалить", в противном случае он будет отображать " удалить (со счетчиком)". Но проблема в том, что delete все еще устанавливает текст " DELETE (with the counter)", хотя счетчик равен 0.

holder.ckbox.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if (((CheckBox) v).isChecked()) {
                            int getPosition = (Integer) v.getTag();  // Here we get the position that we have set for the checkbox using setTag.
                            search.get(getPosition).setSelected(((CheckBox)v).isChecked()); // Set the value of checkbox to maintain its state.
                            checkBoxCounter ++;
                            delete.setText("DELETE"+""+"("+ checkBoxCounter +")");
                        } else
                        {
                            if(checkBoxCounter==0)
                            {
                                delete.setText("DELETE");
                            }
                            else {
                                int getPosition = (Integer) v.getTag();  // Here we get the position that we have set for the checkbox using setTag.
                                search.get(getPosition).setSelected(((CheckBox) v).isChecked()); // Set the value of checkbox to maintain its state.
                                checkBoxCounter--;
                                delete.setText("DELETE" + "" + "(" + checkBoxCounter + ")");
                            }
                        }
                    }
                });


Что я уже пробовал:

Приведенный выше код - это то, что я пробовал, но безуспешно

Richard MacCutchan

if (checkBoxCounter > 0)
...

wseng

где я должен поставить блок if?

Richard MacCutchan

Поместите его вокруг утверждения, что вы хотите появиться только тогда, когда значение больше 0. Это базовая Java, ничего сложного.

[no name]

if (checkBoxCounter. equals(0))

wseng

не удается разрешить равные

1 Ответов

Рейтинг:
12

wseng

Я решил его, используя этот ответ

holder.ckbox.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  if (((CheckBox) v).isChecked()) {
                      int getPosition = (Integer) v.getTag();  // Here we get the position that we have set for the checkbox using setTag.
                      search.get(getPosition).setSelected(((CheckBox)v).isChecked()); // Set the value of checkbox to maintain its state.
                      checkBoxCounter ++;
                      delete.setText("DELETE"+""+"("+ checkBoxCounter +")");
                  } else
                  {
                      int getPosition = (Integer) v.getTag();  // Here we get the position that we have set for the checkbox using setTag.
                      search.get(getPosition).setSelected(((CheckBox) v).isChecked()); // Set the value of checkbox to maintain its state.
                      checkBoxCounter--;
                      if (checkBoxCounter == 0) {
                          delete.setText("DELETE");
                      }
                      else {
                          delete.setText("DELETE" + "" + "(" + checkBoxCounter + ")");
                      }
                  }
              }
          });