如何在Adapter类中使用AlertDialog?

时间:2017-08-06 11:51:05

标签: java android

我已将Context发送到适配器

public ImageAdapter(Context context, List<Image> imagesList) {
        this.context = context;
        mImageList = imagesList;
    }

我用这种方式使用AlertDialog:

AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.AlertDialogCustom);

但我收到了错误:

Unable to add window -- token null is not valid; is your activity running?

3 个答案:

答案 0 :(得分:2)

在您调用适配器的地方相应地从activity / fragment发送上下文为ActivityName.this / getActivity()

答案 1 :(得分:0)

为此,您需要定义回叫。

  • 定义接口(使用方法回调)
  • 在包含适配器
  • 的活动中实现此回调
  • 将对象定义为适配器的参数,如

    public ImageAdapter(Context context,List imagesList,Callback          打回来) {                 this.context = context;                 mImageList = imagesList;                this.callback = callback;             }

  • 在您的调用回调内部调用方法,因为您希望您的活动将听取此操作,并且在您的活动中使用此方法可以创建警报对话框

答案 2 :(得分:0)

你应该将Activity而不是Context传递给AlertDialog.Builder的构造函数。你必须确保在对话框运行时活动正在运行