2012-10-30 33 views
7

Mam dwa przyciski radiowe i 5 pól wyboru w mojej aplikacji na Androida. a także przycisk zapisu. Po kliknięciu przycisku Zapisz użytkownik muszę odznaczyć pola wyboru zaznaczone przez użytkownika. Próbowałem z następującego kodu.Ale to nie działa.Odblokowywanie zaznaczonego pola wyboru Androida

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

Jaki jest kontekst tego fragmentu kodu? Jest zbyt krótki, by być przydatnym. – Tim

+1

Zrób to, , jeśli (chkOthers.isChecked()) { chkOthers.performClick(); } To wykona normalną operację kliknięcia w pole wyboru, które również wykona on onClickListener(), więc używaj go mądrze – Hardik4560

Odpowiedz

4

Jeśli chcesz użyć pól wyboru do tego, można ustawić onItemClickListener na obu wyboru i trzeba odznaczyć drugi w onItemClick() metoda. Przykładem może być tak: -

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

Polecam że należy użyć przycisków opcji dla tego problemu, ponieważ pochodzą one z tej funkcji wbudowanych w od początku.

10

Wystarczy użyć przycisku chk1.toggle() onKliknij przycisk, aby odznaczyć zaznaczone.

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

     } 
    }); 
     } 
}