如何在 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 传递给您的对话框!
我想在用户按下删除 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 传递给您的对话框!