Intereting Posts
Android.content.res.Resurces $ NotFoundException: Идентификатор ресурса строки # 0x0 Как использовать PackageManager.addPreferredActivity ()? Android: Как обновить мой TextView в фрагменте Как показать один макет поверх другого программным способом в моем случае? Выделите пользовательский элемент списка при длительном нажатии Как прочитать содержимое сообщения нового в предстоящем сообщении в android? Android-приложение не установлено. Уже установлен существующий пакет с тем же именем с конфликтующей сигнатурой Android – Как динамически изменять текст пункта меню за пределами onOptionsItemsSelected или onCreateOptionsMenu Динамическое создание кнопок и установка onClickListener Live Video Stream между двумя телефонами Android Невозможно добавить библиотеку в мой проект Android Не удалось добавить запись '0' для кэширования localClassSetAnalysis.bin Отказоустойчивая отладка андроида из-за Bluetooth – Не удается подключиться к локальному хосту Что такое инструменты: макет, инструменты: mockup_crop и инструменты: mockup_opacity Любой пример, показывающий, как войти в систему с помощью Facebook SDK 4.0 на Android, используя собственную кнопку или кнопку Facebook?

Как установить OnClickListener на RadioButton в Android?

У меня есть RadioButton в RadioGroup . Я хочу установить OnClickListener на этих RadioButton . В зависимости от того, какой RadioButton на RadioButton , я хочу изменить текст EditText . Как я могу это достичь?

Solutions Collecting From Web of "Как установить OnClickListener на RadioButton в Android?"

Я бы подумал, что лучше использовать RadioGroup и настроить слушателя на это, чтобы изменить и обновить View соответственно (экономит вас, имея 2 или 3 или 4 и т. Д.).

  RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId is the RadioButton selected } }); 

Надеюсь, что это поможет вам…

 RadioButton rb = (RadioButton) findViewById(R.id.yourFirstRadioButton); rb.setOnClickListener(first_radio_listener); 

а также

 OnClickListener first_radio_listener = new OnClickListener (){ public void onClick(View v) { //Your Implementaions... } }; 
  radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId is the RadioButton selected RadioButton rb=(RadioButton)findViewById(checkedId); textViewChoice.setText("You Selected "+rb.getText()); //Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show(); } }); 

Вопрос состоял в том, чтобы определить, на какой щелчок переключателя, так вы можете получить, какую кнопку нажать

 final RadioGroup radio = (RadioGroup) dialog.findViewById(R.id.radioGroup1); radio.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { View radioButton = radio.findViewById(checkedId); int index = radio.indexOfChild(radioButton); // Add logic here switch (index) { case 0: // first button Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show(); break; case 1: // secondbutton Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show(); break; } } }); 

Вы также можете добавить слушателя из XML-макета: android:onClick="onRadioButtonClicked" в android:onClick="onRadioButtonClicked" <RadioButton/> .

 <RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/pirates" android:onClick="onRadioButtonClicked"/> 

Подробнее см. Android-разработчик SDK-Radio Buttons .

На всякий случай кто-то боролся с принятым ответом:

Существуют разные OnCheckedChangeListener-интерфейсы. Сначала я добавил, чтобы проверить, был ли изменен CheckBox.

 import android.widget.CompoundButton.OnCheckedChangeListener; 

против

 import android.widget.RadioGroup.OnCheckedChangeListener; 

При добавлении фрагмента из Ricky у меня были ошибки:

Метод setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener) в типе RadioGroup не применим для аргументов (новый CompoundButton.OnCheckedChangeListener () {})

Может быть исправлено с ответом Али:

 new RadioGroup.OnCheckedChangeListener() 

Поскольку этот вопрос не является специфичным для Java, я хотел бы добавить, как вы можете это сделать в Котлине :

 radio_group_id.setOnCheckedChangeListener({ radioGroup, optionId -> { when (optionId) { R.id.radio_button_1 -> { // do something when radio button 1 is selected } // add more cases here to handle other buttons in the RadioGroup } } }) 

Здесь radio_group_id – это назначенный android:id соответствующей радиогруппы. Чтобы использовать его таким образом, вам нужно будет импортировать kotlinx.android.synthetic.main.your_layout_name.* В файл Kotlin вашей активности. Также обратите внимание, что в случае, radioGroup параметр лямбда radioGroup не используется, его можно заменить на _ (подчеркивание) с Kotlin 1.1.