2017-05-26 74 views
0

我有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沒有得到觸摸事件。

問題:如何按下第一個按鈕,釋放第二個按鈕並獲得第二個按鈕上的觸摸事件?

回答

0
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

是檢查了我的代碼,檢查了你的代碼。沒有區別。我認爲問題應該在另一個 –

相關問題