Boutons radio à plusieurs lignes dans Android?
Je vais avoir des problème à avoir des composants radiobutton dans plusieurs Lignes
c'est mon xml
<RadioGroup android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<RadioGroup android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/radio_one0Id"
android:textSize="13sp"
android:layout_weight="1"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="13sp"
android:text="5%"
android:id="@+id/radio_one5Id"
android:layout_weight="1"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="10%"
android:textSize="13sp"
android:layout_weight="1"
android:id="@+id/radio_one10Id"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="20%"
android:layout_weight="1"
android:textSize="13sp"
android:onClick="oneRadioButtonClicked"
android:id="@+id/radio_one20Id"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="35%"
android:id="@+id/radio_one35Id"
android:textSize="13sp"
android:onClick="oneRadioButtonClicked"
android:layout_weight="1"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="50%"
android:textSize="13sp"
android:id="@+id/radio_one50Id"
android:onClick="oneRadioButtonClicked"
android:layout_weight="1"
/>
</RadioGroup>
<RadioGroup android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="65%"
android:textSize="13sp"
android:id="@+id/radio_one65Id"
android:onClick="oneRadioButtonClicked"
android:layout_weight="1"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="75%"
android:textSize="13sp"
android:layout_weight="1"
android:id="@+id/radio_one75Id"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="85%"
android:textSize="13sp"
android:id="@+id/radio_one85Id"
android:layout_weight="1"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="13sp"
android:text="95%"
android:id="@+id/radio_one95Id"
android:layout_weight="1"
android:onClick="oneRadioButtonClicked"
/>
<RadioButton
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="100%"
android:id="@+id/radio_one100Id"
android:textSize="13sp"
android:layout_weight="1"
android:onClick="oneRadioButtonClicked"
/>
</RadioGroup>
</RadioGroup>
c'est le code
public void oneRadioButtonClicked(View view) {
//Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
switch(view.getId()) {
case R.id.radio_one0Id:
if (checked)
one = "0";
break;
case R.id.radio_one5Id:
if (checked)
one = "5";
break;
case R.id.radio_one10Id:
if (checked)
one = "10";
break;
case R.id.radio_one20Id:
if (checked)
one = "20";
break;
case R.id.radio_one35Id:
if (checked)
one = "35";
break;
case R.id.radio_one50Id:
if (checked)
one = "50";
break;
case R.id.radio_one65Id:
if (checked)
one = "65";
break;
case R.id.radio_one75Id:
if (checked)
one = "75";
break;
case R.id.radio_one85Id:
if (checked)
one = "85";
break;
case R.id.radio_one95Id:
if (checked)
one = "95";
break;
case R.id.radio_one100Id:
if (checked)
one = "100";
break;
default:
System.out.println("default");
}
}
cela va ressembler à
il va sélectionner les deux boutons sur 2 rangs, je le veux pour sélectionner un seul bouton dans ces lignes, merci pour toute aide
source d'informationauteur user2199280
Vous devez vous connecter pour publier un commentaire.
Mettre un groupe de boutons avec orientation verticale et ajouter deux LinearLayouts:
De recherche autour de, il ne semble pas être un moyen de le faire,
Cela signifie que vous aurez à mettre en œuvre cette disposition comportement manuellement. Deux options possibles sont:
Créer une copie de groupe de boutons d'étendre une disposition différente, ou, au moins, vous permettent de contrôler de manière dynamique.
Mettre en place votre propre mise en page personnalisée pour remplacer le groupe de boutons qui s'étend d'une mise en page de votre choix, et met en œuvre OnClickListener. Il y a un bon exemple Comment le groupe une grille 3x3 de boutons radio?.
Cela a fonctionné pour moi.
La première ligne (NameRadioGroupe2.clearCheck();) l'autre groupe de boutons, et la deuxième ligne ajouter une coche dans le bouton qui a été vérifié
Une façon simple de faire de multiples lignes de boutons radio est d'utiliser MultiLineRadioGroup de la bibliothèque. Il prend en charge le nombre de lignes et de colonnes que vous le souhaitez.
L'utilisation est simple:
Dans votre projet de construction.gradle fichier ajouter:
Dans votre Application ou d'un Module de génération.gradle fichier ajouter:
Vous pouvez utiliser un tableau de chaînes de ressource dans le xml pour créer votre point de vue comme ça:
Dans la mise en page XML d'ajouter:
et dans arrays.xml ajouter:
ou de les ajouter par programmation:
J'étais en train de travailler sur la même chose.
Ce que j'ai fait n'était que l'ajout de plusieurs RadioGroups à l'intérieur de leur propre LinearLayouts. Lors de la sélection d'un composant radiobutton de l'autre groupe de boutons à celui qui est actuellement sélectionné pour vous assurer que le premier groupe de boutons poussoirs sont plus sélectionnés ai-je ajouté .Checked = false pour les radiobuttons .Cliquez sur la fonction. Et puis parce que j'ai vécu bugs au premier où, parfois, la nouvelle cliqué bouton radio ne serait pas vérifier, j'ai ajouté un .Checked = true à la radio bouton.
Mon XML
Et puis mon C#
Primative, mais il a travaillé pour moi.