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() {添加点击按钮事件}
}


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值