Я хочу выбрать только одну радиокнопку в recyclerView
и получить ее данные в Activity
.
Я прошел через следующие решения:
И я принял одно решение:
private static int lastCheckedPos = -1;
binding.radioButton.setChecked(mImagesList.get(position).isSelected());
binding.radioButton.setTag(new Integer(position));
//for default check in first item
if(position == 0 && mImagesList.get(0).isSelected() && binding.radioButton.isChecked())
{
radioButton = binding.radioButton;
lastCheckedPos = 0;
}
binding.radioButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
RadioButton cb = (RadioButton)v;
int clickedPos = ((Integer)cb.getTag()).intValue();
if(cb.isChecked())
{
if(radioButton != null)
{
radioButton.setChecked(false);
mImagesList.get(lastCheckedPos).setSelected(false);
}
radioButton = cb;
lastCheckedPos = clickedPos;
}
else
radioButton = null;
mImagesList.get(clickedPos).setSelected(cb.isChecked());
}
});
Я написал это в методе onBindViewHolder
.
Теперь, чтобы получить данные, я написал это в adapter
:
public String getUserId() {
if(lastCheckedPos == -1)
{
return null;
} else {
return mImagesList.get(lastCheckedPos).getUser_code();
}
}
И заполучил это в действии:
userId = adapter.getUserId();
Но я нев состоянии получить любые данные в деятельности.Это всегда показывает ноль.Также, если я дважды нажму на кнопку с зависимой фиксацией, она будет отменена.
Пожалуйста, спросите, если что-то неясно.Любая помощь будет оценена.
Спасибо:)