2015-04-22 25 views
0

嗨抱歉簡單的問題,但我一定是做錯了什麼,Android的複選框增量錯

我已經12複選框的如果選中複選框的INT總需要一個固定的值遞增(視箱),並顯示在一個TextView

當我檢查一個盒子不展示它是假設的數值 - refurbCost是在構造函數中0 initalized當沒有選擇框

時顯示爲0我選擇新廚房顯示爲21300而不是3000

我在做什麼錯 - PS我知道代碼可能不是偉大實踐IM仍然在開發Android相當新

代碼

public void onClick(View v) { 
    boolean checked = ((CheckBox) v).isChecked() ; 
    switch (v.getId()){ 
     case R.id.centralHeating: 
      if(checked) { 

       refurbCost += 2750; 

      } 
     case R.id.newKitchen: 
      if(checked) { 
       refurbCost += 3000; 

      } 
     case R.id.newBathroom: 
      if(checked) { 
       refurbCost += 1000 ; 

      } 
     case R.id.reWire: 
      if(checked) { 
       refurbCost += 2500; 

      } 
     case R.id.windowDoors : 
      if(checked) { 
       refurbCost += 3000; 

      } 
     case R.id.stairsBanisters: 
      if(checked) { 
       refurbCost += 2000; 

      } 
     case R.id.carpets: 
      if(checked) { 
       refurbCost += 2000; 

      } 
     case R.id.garden: 
      if(checked) { 
       refurbCost += 1000; 

      } 
     case R.id.wallCeiling: 
      if(checked) { 
       refurbCost += 1000; 

      } 
     case R.id.decoration: 
      if(checked) { 
       refurbCost += 1200; 

      } 
     case R.id.alarmSys: 
      if(checked) { 
       refurbCost += 600; 

      } 
     case R.id.fireSafety: 
      if(checked) { 
       refurbCost += 4000; 

      } 
      refurbTotal.setText(""+refurbCost); 
    } 
+0

也許你不會減少取消選擇的價值?和它的String.valueOf(refurbCost),並打破 –

+0

@MarkoNiciforovic此刻我沒有減少的價值,但即使當我只有一個項目選擇它顯示錯誤的值 – BeginnerJavaDev

回答

5

你必須break每個case語句後

例如

case blabla: doSmth(); break; 
+2

...否則流量通過所有你的情況這有時候就是你想要的,但大多數時候不是)。 –

+0

謝謝,我會試試這個,但我認爲你的權利:) – BeginnerJavaDev

+0

是的作品完美謝謝你兩個 – BeginnerJavaDev

1

break;缺失

case R.id.carpets: 
     if(checked) { 
      refurbCost += 2000; 

     } 
     break; 
+0

謝謝你完美的作品:) – BeginnerJavaDev