2012-10-30 28 views
7

Tôi có hai nút radio và 5 hộp kiểm trong ứng dụng Android của mình. và cũng là một nút lưu. Khi người dùng nhấp vào nút lưu, tôi cần bỏ chọn các hộp kiểm được người dùng kiểm tra. Tôi đã thử với đoạn mã sau. Nhưng nó không hoạt động.Cách bỏ chọn hộp kiểm Android đã chọn

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

Ngữ cảnh của đoạn mã đó là gì? Nó quá ngắn để có ích. – Tim

+1

Thực hiện việc này, nếu (chkOthers.isChecked()) { chkOthers.performClick(); } Thao tác này sẽ thực hiện thao tác nhấp bình thường trên hộp kiểm, thao tác này cũng sẽ thực hiện onClickListener(), Vì vậy, hãy sử dụng nó một cách khôn ngoan – Hardik4560

Trả lời

4

Nếu bạn muốn sử dụng hộp kiểm cho điều này, bạn có thể đặt onItemClickListener trên cả hộp kiểm và cần bỏ chọn khác trong phương thức onItemClick(). Ví dụ sẽ như sau: -

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); 
    } 
}); 

Tôi khuyên bạn nên sử dụng nút radio cho hành vi này vì chúng đi kèm với chức năng này được tích hợp ngay từ đầu.

10

Chỉ cần sử dụng chk1.toggle() khi nhấp vào nút để bỏ chọn các mục đã chọn.

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(); 
      } 

     } 
    }); 
     } 
} 
Các vấn đề liên quan