2012-10-07 65 views
3

我正在嘗試製作一個應用程序,用戶可以通過一組按鈕來滑動或拖動手指以執行單擊操作。我試過onTouchMotionEvent.ACTION_MOVE,但我似乎無法得到它的工作。按鈕根本不會按。下面的代碼:如何滑動以執行點擊android

public boolean onTouch(View v, MotionEvent arg1) { 
    if (arg1.getAction() == MotionEvent.ACTION_MOVE) { 

     switch (v.getId()) { 
     case R.id.key1: 
      key1.performClick(); 
      break; 
     case R.id.key2: 
      key2.performClick(); 
      break; 
     case R.id.key3: 
      key3.performClick(); 
      break; 
     case R.id.key4: 
      key4.performClick(); 
      break; 
     case R.id.key5: 
      key5.performClick(); 
      break; 
     case R.id.key6: 
      key6.performClick(); 
      break; 
     case R.id.key7: 
      key7.performClick(); 
      break; 
     case R.id.key8: 
      key8.performClick(); 
      break; 
     } 

    } 
    return true; 
} 
+0

那麼......如果用戶在所有按鈕上滑動他/她的拇指,應用程序會註冊一個點擊?這是意圖(沒有雙關語意圖) –

+0

是的,但它沒有註冊任何點擊按鈕上面的代碼 –

回答

0

我想你最好捕獲所有這些按鈕的關鍵事件,然後在每一個執行某種形式的總和。例如

鍵1 = 1個 鍵2 = 1 + 2 KEY3 = 1 + 2 + 3 ...

當你到達keyx,你可以,如果總和您的期望相符檢查。如果確實如此,用戶可能會在按鈕上滑動他/她的手指。使用某種按鍵的時機,必須按鍵,數字必須加起來爲N.這樣可以避免用戶按下按鍵3,然後回到按鍵1等,仍然註冊點擊。

如果你想註冊一個點擊每個按鈕,設置他們的onclick監聽器,並確保按鈕本身是可點擊的(他們應該已經是)。

+0

按鈕是可點擊的,例如,如果我爲OnTouch返回false()按鈕點擊,但幻燈片不起作用,如果我返回true,當按下任何按鈕時都不會發生。我想創建它,所以當有人在鍵上滑動時,點擊它們當前所在的按鈕並取消選擇上一個按鈕。就像滑過鋼琴一樣。 –