2014-01-28 305 views
0

我有5個按鈕,每個按鈕都打開另一個活動。如何在當前時刻只使用其中一個?當我點擊2個不同的按鈕同時onClick事件調用2次和2個不同的活動打開。我該如何解決我的問題。 Thanks.My代碼onClick事件按鈕

public void onClick(View v) 
    { 
      switch (v.getId()) 
      { 
      case R.id.play_button: 
       onPlayClick(); 
       setButtonsEnable(false); 
       break; 
      case R.id.difficalty_button: 
       onDifficultyClick(); 
       setButtonsEnable(false); 
       break; 
      case R.id.hight_scores_button: 
       onHighScoresClick(); 
       setButtonsEnable(false); 
       break; 
      case R.id.share_button: 
       setButtonsEnable(false); 
       break; 
      case R.id.turn_off_button: 
       onLeaderboardClick(); 
       setButtonsEnable(false); 
       break; 
      default: 
       break; 
      } 
    } 

返回主活動後,我讓我的按鈕點擊

protected void onResume() { 
    super.onResume(); 
    setButtonsEnable(true); 
} 

public void setButtonsEnable(boolean config) 
{ 
    playBtn.setClickable(config); 
    difficultyBtn.setClickable(config); 
    hScoreBtn.setClickable(config); 
    shareBtn.setClickable(config); 
    turnOffButton.setClickable(config); 
} 

回答

1
setOnClickListener(null) 

會做的伎倆,或者你可以讓

setClickable(false) 
+0

當我做setClickable(false)而不是setEnabled(false)結果是一樣的。 –

+0

嘗試在setClickListener上使用空值 –

+0

它的工作原理。謝謝。 –

0

也許你真正需要的是RadioGroup中?它允許開箱即可選擇單擊/只選擇一個按鈕。

Doc reference

Tutorial

0

創建Activity點擊一個變量:

boolean clicked=false; 

坐落在的onClick代碼這個值:

public void onClick(View v) 
{ 
     if(!clicked){ 
     clicked=true; 
     switch (v.getId()) 
     { 
     case R.id.play_button: 
      onPlayClick(); 
      setButtonsEnable(false); 
      break; 
     case R.id.difficalty_button: 
      onDifficultyClick(); 
      setButtonsEnable(false); 
      break; 
     case R.id.hight_scores_button: 
      onHighScoresClick(); 
      setButtonsEnable(false); 
      break; 
     case R.id.share_button: 
      setButtonsEnable(false); 
      break; 
     case R.id.turn_off_button: 
      onLeaderboardClick(); 
      setButtonsEnable(false); 
      break; 
     default: 
      break; 
     }} 
} 
+0

這段代碼應該做什麼?)它只會從播放按鈕捕獲onClick事件。 –

+0

我認爲這是你想要的。讓我編輯我的答案。 –

+0

嘗試編輯。它應該工作 –

0

如果你想在每一次點擊打開一個活動,使用onclicklistener爲每個按鈕或XML佈局通過android:onClick="someMethod"添加一個方法調用,當你點擊一個按鈕並調用UI應該阻止自己的另一個活動...你有嘗試過這種方式嗎?