Android 安卓按键

Android 安卓按键,android,eclipse,button,time,onclick,Android,Eclipse,Button,Time,Onclick,我正在构建一个带有紧急警报按钮的应用程序。我想在按住按钮3秒钟后显示一条祝酒信息,这样,如果对方误按,它将不会发送,但我不确定如何发送 public long startTime = 0; Button btn = (Button)findViewById(R.id.btnAlert); btn.setOnTouchListener(new View.OnTouchListener(){ @Override public bool

我正在构建一个带有紧急警报按钮的应用程序。我想在按住按钮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;
            }
        });

用你自己的方式去做。可以向每个视图添加onTouchListener()。当您收到一个ACTION_DOWN事件时,您将读取实际时间并将其存储在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;
        }
});

我曾尝试在toast消息上设置计时器,以便在3秒钟后显示,但我希望在按钮上设置计时器。当我现在测试应用程序时,按钮不会响应click/Touch获取此错误“ie/itsligo/medi_阳离子/Main$1#onTouch应调用View#检测到单击时执行单击”给你:我添加了performClick事件,但是按钮仍然被禁用。我把代码放在动作启动事件之后,我不确定那是不是正确的位置?按钮仍然被禁用是什么意思?如果您正在为按钮ie:classic View with background使用其他选项,则必须将此选项添加到XML android:clickable=“true”。