如何从位置适配器RecyclerView获得价值

问题描述 投票:0回答:1

我有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();
            }
        });
    }
}
java android android-recyclerview recycler-adapter
1个回答
0
投票

您可以在始终具有位置的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);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.