2012-10-10 76 views
1

我有6個複選框,只有第一個是可點擊的。在第一個選中後,然後允許第二個..當第二個選中時,然後允許第三個..複選框也是需要禁用,以避免用戶取消選中它們。複選框安卓序列邏輯

我想我需要使用數組?想不通是怎麼邏輯..

if(checkbox1.isChecked()){ 
      checkbox1.setEnabled(false); 
     }else if(checkbox2.isChecked()){ 
      checkbox2.setEnabled(false); 
     } 

這是不行的..

+0

嘗試用標記變量當用戶選中的複選框將值分配給它。 –

回答

0

你可以設置一個偵聽器複選框並啓用下一個只要前一個被點擊。

實施例:

CheckBox cb1 = (CheckBox) findViewById(R.id.checkbox1); 
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
      boolean isChecked) { 
     if (isChecked){ 
      cb1.setEnabled(false); 
      cb2.setEnabled(true); 
     } 
    }   
}); 
+0

我需要爲所有這些cb設置?我實現onCheckedChangeListener,這是它不工作的原因嗎? –

+0

是的,你會爲每個複選框設置一個監聽器。每一個(除了最後一個)都將自己設置爲禁用,並將下一個設置爲啓用。最後一個會將自己設置爲禁用,因爲沒有下一個。 如果你使用上面的代碼,它應該可以工作,不管你是否實現它。 (如果您已經爲您的方框設置了checkedChangeListeners,只需將上面的代碼添加到現有的偵聽器。) – matt5784