2012-10-03 12 views
10

voglio ottenere questo: controllo utente su una casella di controllo selezionata, un brindisi visualizzato, la casella di controllo per poi diventare disabilitare ..casella di controllo Disattiva dopo controllato, 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); 

    } 
    } 

     }); 

l'uscita non è riuscita, perché eseguono sullo stesso tempo, anche io ho messo il maschio.setChecked (falso) al di fuori .. Non riesco a ricordare che c'è qualcosa per eseguire qualcosa prima, poi altra cosa .. è thread? Davvero non posso ricordare

risposta

24

Se si vuole raggiungere: "controllo utente su una casella di controllo selezionata, un brindisi visualizzato, la casella di controllo poi diventano disabilitare ..", si dovrebbe provare questo codice:

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

ho usato il tuo codice per verificare se funziona ma setEnabled (false) non funziona. –

+0

@ErrorHandler: non è un metodo non valido, quindi come non può funzionare? qual è il problema che stai affrontando? – Hiral

+0

rimane selezionato anche se setenabled è falso –

2

Prova a utilizzare .onClickListener(View.OnClickListener) con implementato View.OnClickListener. Nel corpo del metodo implementato controllerai se il CheckBox è selezionato o meno e li imposta.

+0

Ohh infatti. Per impostare lo stato abilitato/disabilitato è necessario utilizzare View.setEnabled (booleano). – Pawel

+0

L'utilizzo di View.setVisibilty (int) verrà impostato se il componente viene visualizzato o meno. – Pawel

+0

Ho provato, ma deseleziono il checbox, mostra anche il 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

Prova questa. ...

- Utilizzare i setEnabled(false) sul 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); 
       } 

      } 

     }); 
    } 
} 
Problemi correlati