android EditText向右滑动删除EditText中的文本

在使用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  计算器代码


猜你喜欢

转载自blog.csdn.net/hyrzzh/article/details/64439190