如何在 recyclerview 中为每个 cardview 实现单选警报对话框?

How to implement a single choice alert dialog to each cardview in recyclerview?

我是 Android 开发的新手。我正在构建一个在 recyclerview 中具有卡片视图的应用程序。我想制作一个单选警报对话框列表并处理它们。我正在使用 FirebaseUI 库来填充 recyclerview。

这是我的 ViewHolder class:

public class FriendListViewHolder extends RecyclerView.ViewHolder{

public CircleImageView friendPhoto;
public TextView friendName;
public CardView friendsCardView;

public FriendListViewHolder(@NonNull final View itemView) {
    super(itemView);

    friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
    friendName = itemView.findViewById(R.id.friendNameText);
    friendsCardView = itemView.findViewById(R.id.friends_cardview);

    }

}

每当用户点击卡片视图时,都会弹出警报对话框。但是请记住,我需要知道选择了哪个carview。

我正在尝试但未经过测试,概念是这样的,如果不适合您请告诉我

    public class FriendListViewHolder extends RecyclerView.ViewHolder{

    public CircleImageView friendPhoto;
    public TextView friendName;
    public CardView friendsCardView;

    public FriendListViewHolder(@NonNull final View itemView) {
        super(itemView);

        friendPhoto = itemView.findViewById(R.id.friendProfilePhoto);
        friendName = itemView.findViewById(R.id.friendNameText);
        friendsCardView = itemView.findViewById(R.id.friends_cardview);

        friendsCardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                new AlertDialog.Builder(itemView.getContext())
                        .setTitle("Title of the alert dialog")
                        .setMessage("The body of the alert dialog")

                        // Specifying a listener allows you to take an action before dismissing the dialog.
                        // The dialog is automatically dismissed when a dialog button is clicked.
                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {
                                // Continue with delete operation
                            }
                        })

                        // A null listener allows the button to dismiss the dialog and take no further action.
                        .setNegativeButton(android.R.string.no, null)
                        .setIcon(android.R.drawable.ic_dialog_alert)
                        .show();
            }
        });
    }

}

尽管参考那些问题RecyclerView onClick, How do I display an alert dialog on Android?

在您的适配器中 class 重写 onBindViewHolder 方法,如下所示

        @Override
        protected void onBindViewHolder(@NonNull FriendListViewHolder holder, final int position, @NonNull Model model) { 

            holder.friendsCardView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new AlertDialog.Builder(context)
                        .setTitle("CardView Position")
                        .setMessage("CardView Position is " + String.valueOf(position))
                        .setCanceledOnTouchOutside(true)
                        .show();
                }
            });

        }

以上代码将显示一个警告对话框,其中包含已单击的 cardView 的位置。希望对您有所帮助