Java 如何从position adapter RecyclerView获取值
我有两个数据项,其中的数据具有不同的id。当我单击单选按钮,然后按位置获取id时 示例:我有2个数据项,第一个id是57,第二个id是59。当我点击第一个数据时,它必须得到57的值,或者当我点击第二个数据时,它必须得到59的值Java 如何从position adapter RecyclerView获取值,java,android,android-recyclerview,Java,Android,Android Recyclerview,我有两个数据项,其中的数据具有不同的id。当我单击单选按钮,然后按位置获取id时 示例:我有2个数据项,第一个id是57,第二个id是59。当我点击第一个数据时,它必须得到57的值,或者当我点击第二个数据时,它必须得到59的值 private String convertAddressID; private int previousSelected = -1; private boolean isRadioChecked; @Override public void onBindViewHol
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。 尝试以下类似我的(未测试)代码: @凌驾 public void onBindViewHolder(@NonNull final ViewHolder,final int position){ ModelGetAddress adapterAddress=modelGetAddressList.get(位置)
@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);
}
}
convertAddressID = String.valueOf(adapterAddress.getId());
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
private RadioButton radioButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
radioButton = itemView.findViewById(R.id.radioButton);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
int position=getAdapterPosition();
Toast.makeText(conext, ""+modelGetAddressList.get(position).getId(), Toast.LENGTH_SHORT).show();
}
}