2012-10-30 26 views
7

我在我的android應用程序中有兩個單選按鈕和5個複選框。還有一個保存按鈕。 當用戶點擊保存按鈕時,我需要取消選中用戶選中的複選框。我用以下代碼嘗試過,但它不起作用。如何取消選中的Android複選框

if (chkOthers.isChecked()) 
    chkOthers.setChecked(false); 
    chkOthers.setSelected(false); 
} 
+1

該代碼段的上下文是什麼?它太短而無用。 – Tim

+1

這樣做, if(chkOthers.isChecked()) { chkOthers.performClick(); } 這將對複選框執行正常的點擊操作,該操作也會執行onClickListener(),所以明智地使用它 – Hardik4560

回答

4

如果你想使用複選框對於這一點,你可以在這兩個複選框設置onItemClickListener,需要取消選擇其他的onItemClick()方法。一個例子是這樣的: -

CheckBox cb1,cb2; 
//Considering you can initialize the above variables 
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{ 
    onCheckedChanged (CompoundButton view, boolean isChecked){ 
     cb2.setChecked(false); 
    } 
}); 
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{ 
    onCheckedChanged (CompoundButton view, boolean isChecked){ 
     cb1.setChecked(false); 
    } 
}); 

我會建議你應該使用單選按鈕這種行爲,因爲他們與這個功能從一開始就內置的。

10

只需使用chk1.toggle()onClick按鈕取消勾選。

public class TestCheckBoxActivity extends Activity { 
    /** Called when the activity is first created. */ 
    CheckBox chk1, chk2; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     chk1 = (CheckBox)findViewById(R.id.checkBox1); 
     chk2 = (CheckBox)findViewById(R.id.checkBox2); 

     Button btn = (Button)findViewById(R.id.button1); 

     btn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if(chk1.isChecked()){ 
       chk1.toggle(); 
      } 

      if(chk2.isChecked()){ 
       chk2.toggle(); 
      } 

     } 
    }); 
     } 
}