Как показать кнопку «Очистить» после нажатия первого символа и скрыть ее, когда текст ?

Мне нужно показать кнопку очистки справа от текста редактирования и скрыть ее, когда текст "". Как мне это сделать.

Мне просто нужно знать, как показать и скрыть это, когда длина текста> 0 или = 0, не более того.


person Andrei Pascale    schedule 28.07.2016    source источник
comment
Возможный дубликат Подсчет символов в EditText Changed Listener   -  person Oleg Skidan    schedule 28.07.2016
comment
взгляните на этот devexchanges.info/2015. /04/   -  person Android Surya    schedule 28.07.2016


Ответы (6)


Попробуйте этот код

Field1.addTextChangedListener(new TextWatcher() {

     @Override
      public void afterTextChanged(Editable s) {}

     @Override    
       public void beforeTextChanged(CharSequence s, int start,
       int count, int after) {
      }

    @Override    
    public void onTextChanged(CharSequence s, int start,
       int before, int count) {
       if(s.length() != 0)
        // set the visibility
    }
     });
person DKV    schedule 28.07.2016
comment
@andri : сделал это - person DKV; 28.07.2016

Вот ваш ответ.

Используйте код и включите и выключите видимость кнопки при изменении текста, проверив длину символа.

person Dharvik shah    schedule 28.07.2016

Взгляните на приведенный ниже код, он может вам помочь:

EditText etSearch = (EditText) view.findViewById(R.id.etSearch);

etSearch.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                String str = etSearch.getText().toString();
                if (str.isEmpty()) {
                    btnClear.setVisibility(View.INVISIBLE);
                } else {
                    btnClear.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
person Dang Nguyen    schedule 28.07.2016

Text-watcher может работать на вас

If(editText1.getText.toString.length>0)
 {
  if(button1.getVisibility == View.GONE)
  {
  button1.setVisibility(View.VISIBLE)
  }
}
else
{
 if(button1.getVisibility == View.VISIBLE)
  {
  button1.setVisibility(View.GONE)
  }
}
person Vikas Patel    schedule 28.07.2016

Вы можете использовать TextWatcher, тип Listener:

yourEditText.addTextChangedListener(new TextWatcher() {

      public void afterTextChanged(Editable s) {

        //Here, you can check for text size...
        int length = editText.toString().length();
         [...]



      }

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

      public void onTextChanged(CharSequence s, int start, int before, int count) {}
   });
}

}

Взято из этот вопрос.

person Aleksandar Stefanović    schedule 28.07.2016

Установить видимость ИСКЛЮЧЕНО из xml.

If(editText1.getText.toString.length>0)
 {
  if(button1.getVisibility == View.GONE)
  {
  button1.setVisibility(View.VISIBLE)
   }
}
else
{
 if(button1.getVisibility == View.VISIBLE)
  {
  button1.setVisibility(View.GONE)
  }
}
person KrishnaJ    schedule 28.07.2016
comment
Почему УШЕЛ, а не НЕВИДИМ? - person Aleksandar Stefanović; 30.07.2016