【问题标题】:How to display an AlertDialog on ClickListener in a RecyclerView Adapter如何在 RecyclerView 适配器中的 ClickListener 上显示 AlertDialog
【发布时间】:2021-11-29 17:31:30
【问题描述】:

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

这是适配器内 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 定义
  • 不,Logcat 中没有显示任何内容。它只写应用程序已死
  • 我非常怀疑,您是否将 logcat 设置为正确的设备?发张图片
  • 是的,我不知道,我已将图片添加到问题中

标签: android android-recyclerview android-alertdialog adapter


【解决方案1】:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(mCtx);

对话框需要活动。如果你传递上下文,你会收到一个错误

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

【讨论】:

    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2018-02-07
    • 1970-01-01
    • 2018-02-11
    相关资源
    最近更新 更多