如何按下第一个按钮,释放第二个按钮并获得第二个按钮的触摸事件?

问题描述:

我有2个按钮。这是我在做什么:如何按下第一个按钮,释放第二个按钮并获得第二个按钮的触摸事件?

  1. 我按下按钮1
  2. 然后,我将我的手指扣2
  3. 我按钮2

enter image description here

我设置触摸释放2个按钮的听众。它记录的触摸事件的两个按钮:

public class MainActivity extends AppCompatActivity { 

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

     Button button1 = (Button) findViewById(R.id.button1); 
     Button button2 = (Button) findViewById(R.id.button2); 

     button1.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        Log.d("ButtonTouchTag", "Button 1: DOWN"); 
       } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
        Log.d("ButtonTouchTag", "Button 1: MOVE"); 
       } else if (event.getAction() == MotionEvent.ACTION_UP) { 
        Log.d("ButtonTouchTag", "Button 1: UP"); 
       } 

       return true; 
      } 
     }); 

     button2.setOnTouchListener(new View.OnTouchListener() 

     { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        Log.d("ButtonTouchTag", "Button 2: DOWN"); 
       } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
        Log.d("ButtonTouchTag", "Button 2: MOVE"); 
       } else if (event.getAction() == MotionEvent.ACTION_UP) { 
        Log.d("ButtonTouchTag", "Button 2: UP"); 
       } 
       return false; 
      } 
     }); 

    } 

} 

此代码记录下列信息:

  • 按钮1:DOWN
  • 按钮1:MOVE
  • 按钮1:MOVE
  • 。按钮1:移动
  • 按钮1:移动
  • 按钮1:UP

正如你所看到的,按钮2没有得到触摸事件。

问题:如何按下第一个按钮,释放第二个按钮并获得第二个按钮上的触摸事件?

button2.setOnTouchListener(new View.OnTouchListener() 

     { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        Log.d("ButtonTouchTag", "Button 2: DOWN"); 
       } else if (event.getAction() == MotionEvent.ACTION_MOVE) { 
        Log.d("ButtonTouchTag", "Button 2: MOVE"); 
       } else if (event.getAction() == MotionEvent.ACTION_UP) { 
        Log.d("ButtonTouchTag", "Button 2: UP"); 
       } 
       return true; 
      } 
     }); 

它应该返回true。

+0

我试过这个,但它没有帮助。我认为该布尔值标识应该onClick方法应该被调用或不。 –

+0

是否检查过你的代码?你回归虚假而不是真实。 –

+0

是检查了我的代码,检查了你的代码。没有区别。我认为问题应该在另一个 –