android 帶添加按鈕的EditText

 對應的添加按鈕圖片

EditTextWithAdd.java

package com.chinaunicom.yczft.util;

import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.EditText;

import com.chinaunicom.yczft.R;
/**
 * @2014-12-09 10:58:24
 * @author lxg
 *
 */
public class EditTextWithAdd extends EditText {
	 private final static String TAG = "EditTextWithAdd"; 
	 private Drawable addIcon;  
     private Context mContext; 
     private EditTextWithAddInterFace baseEditTextWithAddInterFace;
	public EditTextWithAdd(Context context) {
		super(context);
		mContext=context;
		init();
	}
	
	public void setActivity(EditTextWithAddInterFace baseEditTextWithAddInterFace){
	   this.baseEditTextWithAddInterFace=baseEditTextWithAddInterFace;
	}
	public EditTextWithAdd(Context context,AttributeSet attrs) {
		super(context,attrs);
		mContext=context;
		init();
	}

	public EditTextWithAdd(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		mContext = context;
		init();
	}
	 private void init() {
		 addIcon=mContext.getResources().getDrawable(R.drawable.add);  
		 addIcon.setBounds(-11, 0, 70, 70);
		 setCompoundDrawables(null, null, addIcon, null);
//		  setCompoundDrawablesWithIntrinsicBounds(null, null, dateIcon, null);
		 this.setEnabled(false);
	 }

	 @Override  
	 public boolean onTouchEvent(MotionEvent event) {  
	     if (addIcon != null && event.getAction() == MotionEvent.ACTION_UP) {  
	           int eventX = (int) event.getRawX();  
	           int eventY = (int) event.getRawY();  
	            Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);  
               Rect rect = new Rect();  
	           getGlobalVisibleRect(rect);  
	            rect.left = rect.right - 81;  
	           if(rect.contains(eventX, eventY)){
	              if(baseEditTextWithAddInterFace!=null){
	            	  baseEditTextWithAddInterFace.addButtonListener();
	              }
	           }
	       }  
	       return super.onTouchEvent(event);  
	    }  

}



 

接口EditTextWithAddInterFace.java

使用接口是爲了讓使用的Activity實現添加按鈕的監聽

package com.chinaunicom.yczft.util;
/**
 * 
 * @author lxg
 * 2014-12-09 12:19:30
 */
public interface EditTextWithAddInterFace {
public void addButtonListener();
}


Activity 調用

public class YcInformationSendActivity extends Activity implements EditTextWithAddInterFace{
private EditTextWithAdd selectUserNames;//已選接收人
public void onCreate(Bundle savedInstanceState) {
selectUserNames=(EditTextWithAdd)findViewById(R.id.selectUserNames);
		selectUserNames.setActivity(this);
}
@Override
	public void addButtonListener() {添加點擊按鈕事件}
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章