首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android按钮推送

Android按钮推送
EN

Stack Overflow用户
提问于 2014-11-01 23:00:24
回答 1查看 171关注 0票数 1

我正在构建一个带有恐慌警报按钮的应用程序。我想在按住按钮3秒后显示一条吐司消息,这样如果有人错误地点击了它,它就不会发送,但我不确定该怎么做。

代码语言:javascript
复制
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;
            }
        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-02 03:10:57

由onTouchEvent来完成。您可以为每个视图添加一个onTouchListener()。当您收到ACTION_DOWN事件时,您将读取实际时间并将其存储在startTime变量中。然后,如果您接收到ACTION_UP事件,您将用startTime减去实际时间。如果startTime和实际时间之间的时间大于3000毫秒,您将显示Toast消息。我现在不能测试下面的代码,但它应该可以工作。

代码语言:javascript
复制
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;
        }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26690506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档