2012-10-03 13 views
10

chcę osiągnąć to: sprawdzanie użytkownika na niesprawdzony wyboru, wyświetlony tosty, pole wyboru, a następnie stać się wyłączyć ..wyłączyć pole po zaznaczeniu android

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
    // TODO Auto-generated method stub 
    if (isChecked){ 
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
    male.setChecked(false); 

    } 
    } 

     }); 

wyjście nie powiodła się, ponieważ są one uruchamiane na tym samym czas, nawet ja umieściłem na zewnątrz męski.setChecked (fałsz) .. nie mogę sobie przypomnieć, że jest coś, co uruchomi coś 1., to jeszcze coś .. czy to jest wątek? naprawdę nie mogę zapamiętać

Odpowiedz

24

Jeśli chcesz osiągnąć: "Sprawdź użytkownika na niesprawdzony wyboru, toast wyświetlonym pole wyboru, a następnie stać się wyłącza ..", należy spróbować ten kod:

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {     
     if (isChecked){ 
      Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
      male.setEnabled(false); // disable checkbox 
     } 
    }  
}); 
+0

użyłem kodu ur, aby sprawdzić, czy działa, ale setEnabled (false) nie działa. –

+0

@ErrorHandler: nie jest nieprawidłową metodą, więc jak to nie działa? z czym masz problem? – Hiral

+0

Pozostaje zaznaczone, mimo że setenabled ma wartość false –

2

Spróbuj użyć .onClickListener(View.OnClickListener) z zaimplementowanym View.OnClickListener. W treści wdrożonej metody sprawdzisz, czy CheckBox jest zaznaczony, czy nie i ustaw je.

+0

Ohh w rzeczywistości. Aby ustawić włączony/wyłączony stan, należy użyć View.setEnabled (boolean). – Pawel

+0

Użycie obiektu View.setVisibilty (int) zostanie ustawione, jeśli komponent jest wyświetlany lub nie. – Pawel

+0

Próbowałem, ale odznaczam checbox, to również pokazuje toast .. –

2
male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

@Override 
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { 
    // TODO Auto-generated method stub 
    if (isChecked){ 
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 
    //male.setVisibility(View.GONE);//disappear your check box 
    male.setEnabled(false);//disable your check box 
} 
} 

}); 
6

Spróbuj tego. ...

- Użyj setEnabled(false) na CheckBox

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {     
     if (isChecked){ 

      Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show(); 

      male.setEnabled(false); // Will Disable checkbox 
     } 
    }  
}); 
0
public class Check extends Activity { 

    private CheckBox male; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.link); 

     male = (CheckBox) findViewById(R.id.checkBox1); 

     male.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

      private Timer t = new Timer(); 

      @Override 
      public void onCheckedChanged(CompoundButton buttonView, 
        boolean isChecked) { 
       // TODO Auto-generated method stub 
       if (isChecked) { 
        Toast.makeText(Check.this, "male", Toast.LENGTH_SHORT) 
          .show(); 
        male.setEnabled(false); // disable checkbox 
        male.setChecked(true); 
       } 

      } 

     }); 
    } 
} 
Powiązane problemy