,可以通过以下步骤实现:
以下是一个示例代码:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> data;
private int lastCheckedPosition = -1;
public MyAdapter(List<String> data) {
this.data = data;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.radioButton.setText(data.get(position));
holder.radioButton.setChecked(position == lastCheckedPosition);
}
@Override
public int getItemCount() {
return data.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
RadioButton radioButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
radioButton = itemView.findViewById(R.id.radioButton);
radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
lastCheckedPosition = getAdapterPosition();
// 获取上一个RadioButton的值
if (lastCheckedPosition > 0) {
String previousValue = data.get(lastCheckedPosition - 1);
// 进行相应的处理
}
}
}
});
}
}
}
在上述示例中,我们通过记录lastCheckedPosition来保存上一个选中的RadioButton的位置。当新的RadioButton被选中时,我们可以通过lastCheckedPosition - 1来获取上一个RadioButton的位置,并从data列表中获取对应的值。然后,你可以根据具体需求进行相应的处理。
请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行适当的修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云