Нажатие RadioButton "A" переключает RadioButton "B" RecyclerView
У меня есть RecyclerView, который отображает список радиокнопок стран, чтобы позволить пользователю выбрать свою страну. Я не хочу больше, чем при нажатии элемента, поэтому я написал этот OnCheckListener в методе onBindView адаптера, но всякий раз, когда я нажимаю RadioButton, несколько других кнопок переключаются с ним.
@Override
public void onBindViewHolder(final com.example.ameer.ta7adialma3rifa.adapters.CountriesAdapter.ViewHolder holder, final int position) {
String name = mData.get(position).getName();
int imgId = mData.get(position).getImageId();
holder.radioButton.setText(name);
holder.flagImageView.setImageResource(imgId);
holder.radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
RadioButton button = (RadioButton) compoundButton;
if (!button.getText().equals(mData.get(position).getName())){
button.setChecked(false);
}
if (runnable != null){
runnable.run();
}
runnable = new Runnable() {
@Override
public void run() {
holder.radioButton.setChecked(false);
}
};
}
});
}
1 ответ
Вы должны поместить свои радио кнопки в группу радио. таким образом, выбирается только один из них. и я не знаю, почему используется runnable для установки переключателя! Я надеюсь, это поможет вам.