-1

私はこれを読んだばかりですEditTextに画像を追加するにはどうすればよいですか クリックしたときにアイコンにアクションを追加できるかどうかを知りたいです...

4

1 に答える 1

0

はい、CustomEediTtextextensions fromを作成するだけで可能EditTextです。この解決策を確認してください

カスタマイズされた EditText クラス CustomEditText.java を作成します。

public class CustomEditText extends EditText {
   private Drawable dRight;
   private Rect rBounds;

   public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
      super(context, attrs, defStyle);
   }
   public CustomEditText(Context context, AttributeSet attrs) {
      super(context, attrs);
   }
   public CustomEditText(Context context) {
      super(context);
   }

   @Override
   public void setCompoundDrawables(Drawable left, Drawable top,
      Drawable right, Drawable bottom)  {
      if(right !=null)
      {
        dRight = right;
      }
      super.setCompoundDrawables(left, top, right, bottom);
   }

   @Override
   public boolean onTouchEvent(MotionEvent event) {

     if(event.getAction() == MotionEvent.ACTION_UP && dRight!=null) {
       rBounds = dRight.getBounds();
       final int x = (int)event.getX();
       final int y = (int)event.getY();

       if(x>=(this.getRight()-rBounds.width()) && x<=(this.getRight()- 
       this.getPaddingRight()) && y>=this.getPaddingTop() && y<=(this.getHeight()-
       this.getPaddingBottom())) {
         //System.out.println("touch");
         this.setText("");
         event.setAction(MotionEvent.ACTION_CANCEL);//use this to prevent the keyboard 
       }
    }
    return super.onTouchEvent(event);
  }

  @Override
  protected void finalize() throws Throwable {
     dRight = null;
     rBounds = null;
     super.finalize();
  }
}
于 2012-07-08T05:34:40.677 に答える