簡體   English   中英

Android按住按鈕幾秒鍾,然后執行某些操作

[英]Android hold button for few seconds and then do something

我想制作一個按鈕,在按住3秒鍾時它會執行某些操作,然后我知道了。 它確實可以工作,但是我想知道它是否是正確的工作方式,這是什么意思,我想使所有按鈕都以相同的方式設計,整個菜單基於按住x秒鍾,然后繼續執行某些操作,所以我想知道它是否會成功問題,不會讓我的應用程序落后。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    onbutton = (Button)findViewById(R.id.onbutton);
    onbutton.setOnTouchListener(new View.OnTouchListener() {
        private Handler handler;
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            switch(motionEvent.getAction()){
                case MotionEvent.ACTION_DOWN:
                    onbutton.setBackgroundResource(R.drawable.onbuttonshape);
                    handler = new Handler();
                    handler.postDelayed(run,3000);
                    break;
                case MotionEvent.ACTION_UP:
                    onbutton.setBackgroundResource(R.drawable.buttonshape);
                    handler.removeCallbacks(run);
                    break;
            }
            return true;
        }
        Runnable run = new Runnable() {
            @Override
            public void run() {
                Toast.makeText(MainActivity.this, "delayed msg", Toast.LENGTH_SHORT).show();
            }
        };
    });
}

不要重新發明Android的功能

setOnLongClickListener()

您可以訂閱,因此可以檢測到您正在尋找的長按

該文檔在這里

我只會使用setOnLongClickListener()方法:

button.setOnLongClickListener(new OnLongClickListener() { 
    @Override
    public boolean onLongClick(View v) {
        // Do what you want to do atfer a long click here
        return true;
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM