2011-01-30 1 views
5

Ho una casella di controllo multipla, ma voglio che l'utente selezioni una sola casella di controllo. Provo la dichiarazione if-else ma non è utilizzabile. Quindi, voglio sapere, come essere così.Seleziona solo una casella di controllo

Grazie

+0

Perché non stai usando i pulsanti di scelta? – jball

risposta

10

Perché non utilizzare i pulsanti radio, invece? Sono pensati esattamente per quello.

Tuttavia, se si insiste a utilizzare le caselle di controllo, modificare l'evento di selezionare qualsiasi casella di controllo in modo che, quando è selezionato, disabiliti le altre caselle di controllo.

+0

Non è lo stesso? Quindi, devo ancora disabilitare il pulsante di opzione? Come farlo? grazie ka – Yoo

+2

I pulsanti di opzione vengono normalmente utilizzati insieme in un gruppo radio. Quando diversi pulsanti radio risiedono all'interno di un gruppo radio, controllando un pulsante di opzione si deseleziona automaticamente tutti gli altri. Dai un'occhiata a questo URL: http://java.dzone.com/articles/google-android-tutorial?page=0,4 – TheCottonSilk

0

ho fatto questo:

- Nel mio layout:

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