繁体   English   中英

如何使用 OnTouchListener 打开新的 Activity

[英]How To Use OnTouchListener To Open New Activity

我尝试了 OnClickListener 和 OnLongClickListener 是的,它起作用了,但是它们太快了,我想让它们更长,我只是无法使用 OntouchListener 打开新活动而且我不知道几乎尝试了一切都没有奏效

活动名称:网站

按钮 id:action_button(它是一个 floatingActionbutton)

@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            FloatingActionButton actionButton = findViewById(R.id.action_button);
    
            defineView();
            handleIntent();
            defineActionBar();
            checkPermission();
                      
                       //i tried both here 
    
    
        public void openWebsite() {
            Intent intent = new Intent(this, Website.class);
            startActivity(intent);

不确定为什么要使用 OnTouchListener 而不是 OnClickListener,因为我认为它们在引用按钮事件时没有任何区别。

whit OnClickListener 您可以通过以下方式捕获长按:

    button.setOnLongClickListener {
        //ACTION
        
        true
    }

编辑:(对于自定义持续时间,您应该使用 OnTouchListener,没错)

你可以这样做:

  long time = 0;

  button.setOnTouchListener(new View.OnTouchListener() {
  @Override
  public boolean onTouch(View view, MotionEvent motionEvent) {
       if(motionEvent.getAction() == MotionEvent.ACTION_DOWN){
            time = System.currentTimeMillis();
       }
       else if(motionEvent.getAction() == MotionEvent.ACTION_UP){
            double duration = (System.currentTimeMillis() - time / 1000.0);
            if(duration > 5){
                action2();
                return true;
            }else if(duration > 3.2){
                action1();
                return true;
            }
        }
        return false;
        }
   });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM