2013-05-28 219 views
3

我有幾個imageview有onclicklistener。如果我按下其中一個(而不是釋放),我可以按下其他按鈕或同時點擊它們。我不想要這個。每次當我按下其中一個時,其他人應該禁用點擊。當我按下按鈕時,其他按鈕如何禁用?

imageview1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       getMethod(); 

      } 
     }); 

我猜,我試圖setClickable(false);,但它並不能正常工作,如果我點擊一個按鈕後,它的工作。

+0

看到這個鏈接,它可以幫助你http://stackoverflow.com/questions/12111862/disabling- multitouch-in-android – Senthil

+0

'android:splitMotionEvents =「false」'是不夠的。我使用'onClick()'和'switch case'來查看。它工作正常。再次啓用'onResume' 以下是樣本 http://stackoverflow.com/questions/3320115/android-onclicklistener-identify-a-button http://stackoverflow.com/questions/3505841/onclick-listener-在Android中 http://stackoverflow.com/questions/6133236/can-you-use-the-same-onclicklistener-for-different-buttons –

+0

@Johnsimit:看到我的答案,你想'setEnabled(false)'在'onTouchListener'中。否則,您可以同時按兩個按鈕。您以後也必須重新啓用它們,但這是實現它的最佳方式。 – Cornholio

回答

3

嘗試使用onTouchListener而不是onClickListener,並在其他視圖上調用setEnabled(false);。這裏有一個非常簡單的例子:

OnTouchListener onTouchListener = new OnTouchListener() { 
    @Override 
    public boolean onTouch(View view, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      imageView1.setEnabled(false); 
      imageView2.setEnabled(false); 
     } 
     return true; 
    } 
}; 

然後將其與應用到圖像的觀點:

imageView1.setOnTouchListener(onTouchListener); 

這應該工作。然而,有一件事是,雖然無論如何你只能按下一個按鈕,但在你放手之後,你也無法推動任何東西 - 但是,你可以通過添加一些邏輯來解決這個問題,看看是否視圖實際上被點擊或者如果用戶觸摸它,改變主意並滑開。即使用戶只是滾動,(event.getAction() == MotionEvent.ACTION_DOWN)檢查也會成立。

+0

還有一些我從來沒有用過的叫做OnFocusChangeListener的東西,但可能更適合你的用途。 – Cornholio

1

嘗試禁用按鈕和

button.setEnable(false); 

啓用按鈕

button1.setEnable(true); 
3
//button on which press u want to disable others 
button1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       button2.setEnabled(false); //button which u want to disable 
       button3.setEnabled(false); //button which u want to disable 
      } 
     }); 

//update fixed a spelling error 
+0

It's setEnabled not setEnable。 – King

相關問題