2016-11-24 2 views
0

У меня есть поле autocomplete editText, и я нашел этот код для очистки текста в поле editText, а также поместив его в правый угол поля, моя проблема заключается в том, что я очищаю текст один раз в поле editText крест (drawable) исчезает. Я должен покинуть страницу и вернуться снова, чтобы она снова была видна. Как я могу сделать его видимым все время? Пожалуйста, помогите. Это код, у меня есть:Очистить поле editText wth drawable

String value = ""; 
    personAccountableAutoCompleteTextView.setText(value); 
    final Drawable x = getResources().getDrawable(R.drawable.clear); 
    personAccountableAutoCompleteTextView.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (personAccountableAutoCompleteTextView.getCompoundDrawables()[2] == null) { 
       return false; 
      } 

      if (event.getX() > personAccountableAutoCompleteTextView.getWidth() - personAccountableAutoCompleteTextView.getPaddingRight() - x.getIntrinsicWidth()) { 
       personAccountableAutoCompleteTextView.setText(""); 
       x.setVisible(true,true); 
       personAccountableAutoCompleteTextView.setCompoundDrawables(null, null, null, null); 
      } 
      return false; 
     } 
    }); 

ответ

0

дают YOUT EditText рисуем прямо в XML, как это:

<EditText 
    android:layoutheight="wrap_content" 
    android:layoutwidth="match_parent" 
    android:drawableright="@drawable/yourimg"/> 

, а затем дать щелчок у слушателя к этому Drawable, как это:

edittext.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      final int DRAWABLE_LEFT = 0; 
      final int DRAWABLE_TOP = 1; 
      final int DRAWABLE_RIGHT = 2; 
      final int DRAWABLE_BOTTOM = 3; 

      if(event.getAction() == MotionEvent.ACTION_UP) { 
       if(event.getRawX() >= (edittext.getRight() - edittext.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { 
        // your action here 

       return true; 
       } 
      } 
      return false; 
     } 
    }); 
+0

I эта часть права, моя проблема в том, что drawable исчезает после того, как я использую его один раз, я не могу очистить поле EditText дважды. – Fuluza

+0

он не должен исчезать с использованием вышеуказанного кода! –

+0

Спасибо, столько сатиш :) это работает! – Fuluza

Смежные вопросы