package
com.example.singleradiobuttonrv;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.CompoundButton;
import
android.widget.RadioButton;
import
androidx.annotation.NonNull;
import
androidx.recyclerview.widget.AdapterListUpdateCallback;
import
androidx.recyclerview.widget.RecyclerView;
import
java.io.*;
import
java.util.ArrayList;
public
class
MainAdapter
extends
RecyclerView.Adapter<MainAdapter.ViewHolder> {
ArrayList<String> arrayList;
ItemClickListener itemClickListener;
int
selectedPosition = -
1
;
public
MainAdapter(ArrayList<String> arrayList,
ItemClickListener itemClickListener)
{
this
.arrayList = arrayList;
this
.itemClickListener = itemClickListener;
}
@NonNull
@Override
public
ViewHolder
onCreateViewHolder(
@NonNull
ViewGroup parent,
int
viewType)
{
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_main, parent,
false
);
return
new
ViewHolder(view);
}
@Override
public
void
onBindViewHolder(
@NonNull
ViewHolder holder,
int
position)
{
holder.radioButton.setText(arrayList.get(position));
holder.radioButton.setChecked(position
== selectedPosition);
holder.radioButton.setOnCheckedChangeListener(
new
CompoundButton.OnCheckedChangeListener() {
@Override
public
void
onCheckedChanged(
CompoundButton compoundButton,
boolean
b)
{
if
(b) {
selectedPosition
= holder.getAdapterPosition();
itemClickListener.onClick(
holder.radioButton.getText()
.toString());
}
}
});
}
@Override
public
long
getItemId(
int
position)
{
return
position;
}
@Override
public
int
getItemViewType(
int
position)
{
return
position;
}
@Override
public
int
getItemCount()
{
return
arrayList.size();
}
public
class
ViewHolder
extends
RecyclerView.ViewHolder {
RadioButton radioButton;
public
ViewHolder(
@NonNull
View itemView)
{
super
(itemView);
radioButton
= itemView.findViewById(R.id.radio_button);
}
}
}
class
GFG {
public
static
void
main(String[] args)
{
System.out.println(
"GFG!"
);
}
}