Можно ли разрешить отключение всех переключателей в приложении Android? - PullRequest
5 голосов
/ 22 июня 2011

Просто хотел узнать, знает ли кто-нибудь, есть ли атрибут radiogroup или radiobutton или что-то еще быстрое, что позволит переключать переключатели, когда они находятся в режиме проверки. Я стремлюсь создать функциональность, которая работает как радиогруппа (т. Е. Можно проверить только одну), но я также хочу, чтобы они могли быть отключены.

Ответы [ 2 ]

11 голосов
/ 07 апреля 2012

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

Поэтому я инициализирую свою радиогруппу в макете следующим образом:

<RadioGroup
    android:id="@+id/radio_selection"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/radio_true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/true" />

    <RadioButton
        android:id="@+id/radio_false"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="false"
        android:text="@string/false" />
</RadioGroup>

Это инициализирует мойРадиогруппа и оба RadioButton изначально не выбраны.После этого, когда я меняю картинку, мне нужно отменить выбор (потому что пользователь еще не выбрал новую картинку).Мне это нравится:

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_selection);
radioGroup.clearCheck();

Это делает именно то, что мне нужно: снова не выбирая ни одну из переключателей.Я надеюсь, что понял вопрос, и это поможет кому-то в будущем.

3 голосов
/ 22 июня 2011

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

public void onClick(View v) {
    int id = v.getId();
    if (id == R.id.checkBox1) {
        // Toggle status of checkbox selection
        checkBox1Selected = checkBox1.isChecked();

        // Ensure that other checkboxes are not selected
        if (checkBox2Selected) {
            checkBox2.setChecked(false);
            checkBox2Selected = false;
         } 
    else if (id == R.id.checkBox2) {
         // Toggle status of checkbox selection
         checkBox2Selected = checkBox2.isChecked();

        // Ensure that other checkboxes are not selected
        if (checkBox1Selected) {
            checkBox1.setChecked(false);
            checkBox1Selected = false;
        }
}
...