如何在 RecyclerView 适配器中的 ClickListener 上显示 AlertDialog

How to display an AlertDialog on ClickListener in a RecyclerView Adapter

我想在用户按下删除 ImageButton 时为他显示一个警告对话框。但是,按下按钮时应用程序崩溃。

这是适配器内部的 onClickListener 代码:

holder.delete.setOnClickListener(new View.OnClickListener() {
            String productId = String.valueOf(item.getId());
            @Override
            public void onClick(View v) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(mCtx);
                alertDialog.setTitle("App Name");
                alertDialog.setMessage("Are you sure you want to delete this item?");
                alertDialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        deleteItem(productId);
                        dialog.cancel();
                    }
                });
                alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                          dialog.cancel();
                    }
                });

                AlertDialog dialog = alertDialog.create();
                dialog.show();
            }
        });

这是我的 LogCat 的样子: 错误在这一行:

AlertDialog dialog = alertDialog.create();

AlertDialog.Builder alertDialog = new AlertDialog.Builder(mCtx);

对话框需要 activity。如果您传递上下文,您将收到一个错误

使用 onclickListener 接口并在您的 activity 中实现,然后将您的 activity 传递给您的对话框!