我正在构建一个带有恐慌警报按钮的应用程序。我想在按住按钮3秒后显示一条吐司消息,这样如果有人错误地点击了它,它就不会发送,但我不确定该怎么做。
public long startTime = 0;
Button btn = (Button)findViewById(R.id.btnAlert);
btn.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event){
if(event.getAction() == MotionEvent.ACTION_UP){
if((System.currentTimeMillis()- startTime)> 3000){
Toast.makeText(getApplicationContext(), "Alert Received! Emergency Services Will Arrive At Your Location Shortly", Toast.LENGTH_LONG).show();
}
return true;
}
if(event.getAction() == MotionEvent.ACTION_DOWN){
startTime = System.currentTimeMillis();
return true;
}
return false;
}
});
发布于 2014-11-02 03:10:57
由onTouchEvent来完成。您可以为每个视图添加一个onTouchListener()。当您收到ACTION_DOWN事件时,您将读取实际时间并将其存储在startTime变量中。然后,如果您接收到ACTION_UP事件,您将用startTime减去实际时间。如果startTime和实际时间之间的时间大于3000毫秒,您将显示Toast消息。我现在不能测试下面的代码,但它应该可以工作。
public long startTime = 0;
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
if((System.currentTimeMillis() - startTime) > 3000) {
//show toast message
}
return true;
}
if(event.getAction() == MotionEvent.ACTION_DOWN){
startTime = System.currentTimeMillis();
return true;
}
return false;
}
});
https://stackoverflow.com/questions/26690506
复制相似问题