在使用IOS计算器时发现没有删除按钮,于是百度一下发现是向右滑动就可以删除文本,如下图
上面是用安卓实现的效果。
实现思路:
1、为editText添加onTouchListener监听事件。
result.setOnTouchListener(this);
2、在onTouch方法中判断是否是向右滑动。
定义变量,MIN_DISTANCE是最小滑动距离
private float x1,x2;
private final int MIN_DISTANCE=150;
(重点)不能为EditText设置Enable=false的属性,如果设置的话就不能监听事件。所以我使用setKeyListener(null)让EditView不能获得焦点,这样的话editText就不可编辑了。
result.setKeyListener(null);
result.setOnTouchListener(this);
Activity需要实现onTouchListener接口
@Override
public boolean onTouch(View v, MotionEvent event) {
String etText=result.getText().toString();
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:x1=event.getX();
break;
case MotionEvent.ACTION_UP: x2=event.getX();
float deltax=x2-x1;
if(x2>x1 && deltax>MIN_DISTANCE)
{
if(!TextUtils.isEmpty(etText))
{
result.setText(etText.substring(0,etText.length()-1));
}
}
break;
}
return false;
}
http://download.csdn.net/detail/hyrzzh/9788195 计算器代码