2016-11-24 12 views
0

私はeditTextフィールドをオートコンプリートしていますが、editTextフィールドのテキストを消去し、フィールドの右隅に配置するためにこのコードを見つけました。十字架が消える。私はそのページを離れて再び見えるように戻って来なければならない。私はいつもそれを見えるようにすることができますか?助けてください。 これは、コード私が持っている: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

は、このようなXMLでのyoutのEditText描画可能な権利を与える:

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

をしてから、このようなその描画可能にクリックのリスナーを与える:

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フィールドを2回クリアすることができないという問題があります。 – Fuluza

+0

上記のコードを使用して消えるべきではありません! –

+0

ありがとうございましたSatish :)これは動作します! – Fuluza

関連する問題