Builder中的Builder(android.app.activity)无法应用于匿名(android.view.View.OnClickListener)

Builder(android.app.activity) in Builder cannot be applied to anonymous (android.view.View.OnClickListener)

我的错误是

Builder(android.app.activity) in Builder cannot be applied to anonymous (android.view.View.OnClickListener).

我正在尝试添加自定义警报对话框以在单击信息按钮时弹出,但不幸的是出现上述错误。

public class MyAdapter extends PagerAdapter {

    String TAG = "MyAdapter";
    Context context;
    List<ItemLoader> itemsList;
    LayoutInflater layoutInflater;

    public MyAdapter(Context context, List<ItemLoader> itemsList) {
        this.context = context;
        this.itemsList = itemsList;
        layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return itemsList.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        ((ViewPager)container).removeView((View)object);
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View view = layoutInflater.inflate(R.layout.common_fragment,container,false);

        ImageView threeDots = view.findViewById(R.id.info_three_dots);
        ImageView firebase_image = (ImageView)view.findViewById(R.id.image_firebase);
        TextView item_name = (TextView)view.findViewById(R.id.item_name);
        TextView item_bid_amount = (TextView)view.findViewById(R.id.item_bid_amount);

        Picasso.get().load(itemsList.get(position).getImage()).into(firebase_image);
        item_name.setText(itemsList.get(position).getName());
        item_bid_amount.setText(itemsList.get(position).getPrice());

        threeDots.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                      new FancyGifDialog.Builder(this)         
                        .setTitle("Granny eating chocolate dialog box")
                        .setMessage("This is a granny eating chocolate dialog box. This library is used to help you easily create fancy gify dialog.")
                        .setPositiveBtnText("Ok")
                        .setPositiveBtnBackground("#FF4081")
                        .setGifResource(R.drawable.gif1)   //Pass your Gif here
                        .isCancellable(true)
                        .OnPositiveClicked(new FancyGifDialogListener() {
                            @Override
                            public void OnClick() {
                                Toast.makeText(context,"Ok",Toast.LENGTH_SHORT).show();
                            }
                        })
                        .build();
            }
        });

        container.addView(view);
        return view;
    }
}

我在第 new FancyGifDialog.Builder(this) 行遇到错误。

替换这行代码:

new FancyGifDialog.Builder(this)  

与 :

new FancyGifDialog.Builder((Activity)context)  

您已经在适配器传递中有了如此简单的上下文。

从错误

开始,您必须将行从 new FancyGifDialog.Builder(this) 更改为
new FancyGifDialog.Builder((Activity)context)

Builder(android.app.activity) in Builder cannot be applied to anonymous (android.view.View.OnClickListener)

显然Builder构造函数接受Activity。因此,当您在 onClick(View v) 方法中编写 new FancyGifDialog.Builder(this) 时,您正在尝试传递 OnClickListener 的匿名 class。
new FancyGifDialog.Builder(this) 此行在 Activity Class.

中有效