我有2个数据项,其中数据具有不同的ID。当我单击单选按钮,然后按位置获取ID。
[示例:我有2个数据项,第一个id为57,第二个id为59。当我单击第一个数据时,它的值必须为57;当我单击第二个数据时,它的值必须为。 59。
private String convertAddressID;
private int previousSelected = -1;
private boolean isRadioChecked;
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
ModelGetAddress adapterAddress = modelGetAddressList.get(position);
convertAddressID = String.valueOf(adapterAddress.getId());
}
public class ViewHolder extends RecyclerView.ViewHolder {
private RadioButton radioButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
radioButton = itemView.findViewById(R.id.radioButton);
radioButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
previousSelected = getAdapterPosition();
notifyItemRangeChanged(0, modelGetAddressList.size());
Toast.makeText(getContext, convertAddressID, Toast.LENGTH_SHORT).show();
}
});
}
}
您可以在始终具有位置的onBindViewHolder中设置onClickListener。在ViewHolder类中调用findViewById。试试这样的东西我的(未经测试的)代码:
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
((ViewHolder)holder).button.setOnClickListener(...)
}
public class ViewHolder extends RecyclerView.ViewHolder {
Button button;
ViewHolderContent(@NonNull View itemView) {
super(itemView);
button= itemView.findViewById(R.id.button);
}
}