2011-01-30 15 views
5

Tengo varias casillas de verificación, pero quiero usuario seleccionar sólo una casilla de verificación. Intento la instrucción if-else pero no es utilizable. Entonces, quiero saber cómo ser así.Seleccione sólo una casilla

Gracias

+0

Por qué no está usando los botones de radio? – jball

Respuesta

10

¿Por qué no utilizar botones de opción en su lugar? Ellos están destinados exactamente para eso.

Pero si usted insiste en el uso de casillas de verificación, modifique el caso de que el selecto de cualquier casilla de verificación de tal manera que cuando se selecciona desactiva las demás casillas de verificación.

+0

¿No es lo mismo? Entonces, todavía tengo que deshabilitar el botón de radio ¿verdad? ¿Como hacer eso? gracias ka – Yoo

+2

Los botones de radio normalmente se usan juntos en un RadioGroup. Cuando varios botones de radio viven dentro de un grupo de radio, al marcar un botón de radio, todos los demás se desactivan automáticamente. Eche un vistazo a esta URL: http://java.dzone.com/articles/google-android-tutorial?page=0,4 – TheCottonSilk

0

Hice esto:

- En mi diseño:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:alignmentMode="alignBounds" 
    android:columnCount="1" 
    android:background="#ff99f6ff" 
    > 

    <ImageView 
     android:id="@+id/escudo" 
     android:layout_width="250dp" 
     android:layout_height="250dp" 
     android:layout_gravity="center_horizontal|fill_vertical" 
     android:src="@drawable/dicon2" 
     android:contentDescription="foto logo" 
     android:layout_marginTop="30dp" 
     android:layout_alignParentTop="false" 
     android:layout_centerInParent="true" /> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button" 
     android:layout_gravity="top" 
     android:layout_below="@+id/radioGroup" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="48dp" /> 

    <RadioGroup 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/radioGroup" 
     android:orientation="horizontal" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="34dp" 
     android:gravity="center_horizontal" 
     android:checkedButton="1" 
     > 

     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/check_a" 
      android:id="@+id/checkBoxA" 
      android:layout_above="@+id/escudo" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:onClick="onCheckboxClicked" /> 

     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/check_b" 
      android:id="@+id/checkBoxB" 
      android:layout_alignTop="@+id/checkBoxA" 
      android:layout_toRightOf="@+id/checkBoxA" 
      android:layout_toEndOf="@+id/checkBoxA" 
      android:onClick="onCheckboxClicked"/> 

     <CheckBox 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/check_c" 
      android:id="@+id/checkBoxC" 
      android:layout_alignTop="@+id/checkBoxB" 
      android:layout_toRightOf="@+id/checkBoxB" 
      android:layout_toEndOf="@+id/checkBoxB" 
      android:onClick="onCheckboxClicked"/> 

    </RadioGroup> 
</RelativeLayout> 


import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.CheckBox; 

public class MainActivity extends ActionBarActivity { 

    private CheckBox checkBoxA, checkBoxB, checkBoxC; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     checkBoxA = (CheckBox) findViewById(R.id.checkBoxA); 
     checkBoxB = (CheckBox) findViewById(R.id.checkBoxB); 
     checkBoxC = (CheckBox) findViewById(R.id.checkBoxC); 
    } 

    public void onCheckboxClicked(View view) { 

     switch(view.getId()) { 

      case R.id.checkBoxA: 

        checkBoxB.setChecked(false); 
        checkBoxC.setChecked(false); 

       break; 

      case R.id.checkBoxB: 

        checkBoxC.setChecked(false); 
        checkBoxA.setChecked(false); 

       break; 

      case R.id.checkBoxC: 

        checkBoxA.setChecked(false); 
        checkBoxB.setChecked(false); 

       break; 
     } 
    } 
} 
Cuestiones relacionadas