我正在使用具有背景可绘制作为自定义按钮的相对布局,并使用 onClick 将通知发送到自定义方法。我试图确保我确切地知道用户何时触摸相对视图,并在用户停止触摸相对视图时立即更新。
我不确定当用户不再触摸相对布局时如何通知。有任何想法吗?
我正在使用具有背景可绘制作为自定义按钮的相对布局,并使用 onClick 将通知发送到自定义方法。我试图确保我确切地知道用户何时触摸相对视图,并在用户停止触摸相对视图时立即更新。
我不确定当用户不再触摸相对布局时如何通知。有任何想法吗?
您需要添加一个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;
}
});