2012-10-03 15 views
10

que quiero lograr esto: verificación del usuario en una casilla sin marcar, una tostada está representada, la casilla de verificación y luego se convierten en desactivar ..casilla de bloqueo tras comprobar, androide

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

    } 
    } 

     }); 

la salida fracasó, ya que se ejecutan en el mismo tiempo, incluso puse el male.setChecked (falso) fuera .. No puedo recordar que haya algo para ejecutar algo primero, luego otra cosa ... ¿es hilo? realmente no puedo recordar

Respuesta

24

Si usted quiere lograr: "verificación del usuario en una casilla sin marcar, una tostada que se muestra, la casilla de verificación y luego se convierten en desactivar ..", usted debe tratar este código:

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

usé el código ur para verificar si funciona pero setEnabled (falso) no funciona. –

+0

@ErrorHandler: no es un método inválido, entonces ¿cómo no puede funcionar? ¿Cuál es el problema que estás enfrentando? – Hiral

+0

Se mantiene comprobado aunque se pueda marcar es falso –

2

Intente utilizar .onClickListener(View.OnClickListener) con View.OnClickListener implementado. En el cuerpo del método implementado, verificará si CheckBox está marcado o no y los establecerá.

+0

Ohh de hecho. Para establecer el estado habilitado/deshabilitado, necesita usar View.setEnabled (boolean). – Pawel

+0

El uso de View.setVisibilty (int) establecerá si el componente se muestra o no. – Pawel

+0

Lo intenté, pero desactivo el checbox, también muestra el brindis .. –

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

probar esto. ...

- Utilice la setEnabled(false) en el 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); 
       } 

      } 

     }); 
    } 
} 
Cuestiones relacionadas