Флажок и радио кнопки - PullRequest
       27

Флажок и радио кнопки

6 голосов
/ 02 августа 2011

У флажков есть разрешение вести себя как переключатели. Я занимаюсь разработкой приложения для викторины, в котором параметры переключателей имеют поведение переключателей, а значок параметров должен быть похож на флажок, и я могу сгруппировать их.флажок, как мы группируем радио кнопки?

Ответы [ 3 ]

22 голосов
/ 20 июля 2012

Если вы хотите радио кнопки, которые выглядят как флажки.Установите стиль RadioButton как @android:style/Widget.CompoundButton.CheckBox

, например:

<RadioButton style="@android:style/Widget.CompoundButton.CheckBox" />
2 голосов
/ 28 декабря 2011

Я не знаю, является ли это лучшим решением, но вы можете создать «менеджер» для своих флажков и запускать его всякий раз, когда по любому из них нажимают.

Для простоты я добавил менеджера в коде xml, но вы также можете свободно использовать setOnClickListener или setOnCheckedChangeListener .

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<CheckBox
    android:id="@+id/checkBox1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox1" 
    android:onClick="cbgroupmanager"
    />

  ...

<CheckBox
    android:id="@+id/checkBox5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="CheckBox5" 
    android:onClick="cbgroupmanager"/>

</LinearLayout>

Вам нужен ArrayList для итерации, чтобы вы могли устанавливать статус каждого флажка, когда бы ни нажимали на любой из них.

   public class Q6910875 extends Activity 

    ArrayList<CheckBox> cb = new ArrayList<CheckBox>();         
    int CheckBoxNum = 5; //number of checkboxes
    Iterator<CheckBox> itr ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        cb.add((CheckBox) findViewById(R.id.checkBox1));
        cb.add((CheckBox) findViewById(R.id.checkBox2));
        cb.add((CheckBox) findViewById(R.id.checkBox3));
        cb.add((CheckBox) findViewById(R.id.checkBox4));
        cb.add((CheckBox) findViewById(R.id.checkBox5));
        itr = cb.iterator();

    }

И здесь у нас есть наш менеджер, один итератор, который пропускает весь список, снимая отметку со всех, когда он достигает щелкнутого, проверяет!

public void cbgroupmanager(View v) { 
    CheckBox cbaux;
    while(itr.hasNext()) {
        cbaux = (CheckBox) itr.next(); // we need this because it returns a Object, and we need the setChecked, which is a CheckBox method.
        Log.d("soa", "click");
        if (cbaux.equals(v))     //if its the one clicked, mark it as checked!
            cbaux.setChecked(true);
         else 
            cbaux.setChecked(false);

    }

Я также мог бы найти другое решение, связанное ниже, вы можете изменить тему вашего флажка, но у меня нет опыта работы с темами, поэтому я не могу помочь вам в этом подходе.

Можно ли изменить значок переключателя в группе переключателей Android

0 голосов
/ 05 апреля 2015

В radiabutton у нас может быть только одно решение. Но флажок может иметь несколько вариантов.

в зависимости от использования мы выбираем эти элементы управления.

например,

RadioButton

Пол - o Мужской o Женский

здесь мы можем выбрать только один вариант

, например,

CheckBox

вашЗаинтересованные игры?

o крикет o футбол o долина o хоккей

...