0

我正在使用具有背景可绘制作为自定义按钮的相对布局,并使用 onClick 将通知发送到自定义方法。我试图确保我确切地知道用户何时触摸相对视图,并在用户停止触摸相对视图时立即更新。

我不确定当用户不再触摸相对布局时如何通知。有任何想法吗?

4

1 回答 1

1

您需要添加一个OnTouchListener,然后只需跟踪用户何时放下手指以及何时重新拾起手指。取两次之差即可得到总时间。为此,请声明类变量

private Date downTime;

然后删除您的旧onClickListener(您在下面添加此逻辑),将其添加onTouchListener到您的视图中onCreate

myView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent e) {
        switch(e.getAction()) {
            case MotionEvent.ACTION_DOWN :
                downTime = new Date();
                return true;
            case MotionEvent.ACTION_UP :
                Date d = new Date();
                long clickDuration = d.getTime() - downTime.getTime();//this is the number of milliseconds the user took to click.
                //here you should also add your onClick logic.
                downTime = null;
                return true;
        }
        return false;
    }
});
于 2013-08-22T21:12:19.003 回答