Android按钮推送

时间:2014-11-01 15:00:24

标签: android eclipse button time onclick

我正在使用恐慌警报按钮构建应用程序。我按住按钮3秒钟后想显示一个Toast消息,所以如果这个人错误地点击它就不会发送但是我不知道该怎么做。

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;
            }
        });

1 个答案:

答案 0 :(得分:1)

通过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;
        }
});