Java 带有Viewpager的对话框中出现错误

Java 带有Viewpager的对话框中出现错误,java,android,android-fragments,Java,Android,Android Fragments,我正在尝试从“回收器查看图像”单击打开一个对话框…该对话框包含一个用于创建滑动视图库的Viewpager 打开对话框的代码 holder.image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Dialog dialog = new Dialog(holder.itemVi

我正在尝试从“回收器查看图像”单击打开一个对话框…该对话框包含一个用于创建滑动视图库的Viewpager

打开对话框的代码

holder.image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final Dialog dialog = new Dialog(holder.itemView.getContext());

                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                dialog.setCanceledOnTouchOutside(false);
                dialog.setCancelable(true);
                dialog.setContentView(R.layout.activity_fullscreen_image);

                ImageView back=(ImageView)dialog.findViewById(R.id.back);
                ViewPager viewPagerPhotoSlideShow = (ViewPager) dialog.findViewById(R.id.pager);

                ArrayList<String> pagerListItems=new ArrayList<String>();
                pagerListItems.add(0,"https://firebasestorage.googleapis.com/v0/b/zumi-60a8f.appspot.com/o/Chat_Images%2Fcropped-1222406361.png?alt=media&token=22b8673f-5602-48d4-980f-986d505d2d8f");
                pagerListItems.add(1,"https://firebasestorage.googleapis.com/v0/b/zumi-60a8f.appspot.com/o/Chat_Images%2Fcropped1611377016.png?alt=media&token=e7a40c6c-35ad-48ee-80ca-656384fcf68c");

                FullScreenImageAdapter adapterPhotoViewPager = new FullScreenImageAdapter(dialog.getOwnerActivity(), pagerListItems);
                viewPagerPhotoSlideShow.setAdapter(adapterPhotoViewPager);
                viewPagerPhotoSlideShow.setCurrentItem(0);


                back.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.cancel();
                    }
                });


                WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                lp.copyFrom(dialog.getWindow().getAttributes());
                lp.width = WindowManager.LayoutParams.MATCH_PARENT;
                lp.height = WindowManager.LayoutParams.MATCH_PARENT;
                lp.gravity = Gravity.CENTER;

                Window window = dialog.getWindow();
                window.setAttributes(lp);
                window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
                dialog.show();

            }
        });
holder.image.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终对话框=新对话框(holder.itemView.getContext());
对话框.requestWindowFeature(窗口.FEATURE\u无\u标题);
对话框。setCanceledOnTouchOutside(false);
对话框。可设置可取消(true);
setContentView(R.layout.activity\u全屏图像);
ImageView back=(ImageView)dialog.findViewById(R.id.back);
ViewPager viewPagerPhotoSlideShow=(ViewPager)dialog.findViewById(R.id.pager);
ArrayList pagerListItems=新的ArrayList();
pagerListItems.add(0,“https://firebasestorage.googleapis.com/v0/b/zumi-60a8f.appspot.com/o/Chat_Images%2Fcropped-1222406361.png?alt=媒体和令牌=22b8673f-5602-48d4-980f-986d505d2d8f”);
pagerListItems.add(1,“https://firebasestorage.googleapis.com/v0/b/zumi-60a8f.appspot.com/o/Chat_Images%2Fcropped1611377016.png?alt=media&token=e7a40c6c-35ad-48ee-80ca-656384fcf68c”);
FullScreenImageAdapter AdapterPhotoviewPage=新的FullScreenImageAdapter(dialog.getOwnerActivity(),pagerListItems);
设置适配器(adapterPhotoViewPager);
ViewPagePhotoSlideshow.setCurrentItem(0);
back.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
dialog.cancel();
}
});
WindowManager.LayoutParams lp=新建WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width=WindowManager.LayoutParams.MATCH\u父项;
lp.height=WindowManager.LayoutParams.MATCH\u父项;
lp.重心=重心;
Window=dialog.getWindow();
设置属性(lp);
窗。可倒进地面拉深(新彩色拉深(彩色。透明));
dialog.show();
}
});
适配器代码:

public class FullScreenImageAdapter extends PagerAdapter {

    private Activity _activity;
    private ArrayList<String> _imagePaths;
    private LayoutInflater inflater;

    // constructor
    public FullScreenImageAdapter(Activity activity,
                                  ArrayList<String> imagePaths) {
        this._activity = activity;
        this._imagePaths = imagePaths;
    }

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

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imgDisplay;
      //  Button btnClose;

        inflater = (LayoutInflater) _activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


        View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image_each, container,
                false);

        imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay);

        Glide.with(container.getContext()).load(_imagePaths.get(0))
                .priority(Priority.HIGH).animate(android.R.anim.fade_in)
                .override(120, 87).fitCenter().skipMemoryCache(false)
                .diskCacheStrategy(DiskCacheStrategy.RESULT)
                .into(imgDisplay);

        ((ViewPager) container).addView(viewLayout);

        return viewLayout;
    }

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

    }

}
公共类FullScreenImageAdapter扩展了PagerAdapter{
私人活动;
私有ArrayList_ImagePath;
私人充气机;
//建造师
公共FullScreenImageAdapter(活动,
ArrayList图像路径){
这个。_活动=活动;
这是。_imagepath=imagepath;
}
@凌驾
public int getCount(){
返回此项。_imagepath.size();
}
@凌驾
公共布尔值isViewFromObject(视图,对象){
返回视图==((RelativeLayout)对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
图像视图imgDisplay;
//按钮关闭;
充气器=(充气器)\u活动
.getSystemService(上下文布局\充气机\服务);
视图布局=充气机。充气(R.layout.layout\u全屏\u图像\u每个容器,
假);
imgDisplay=(ImageView)viewLayout.findViewById(R.id.imgDisplay);
Glide.with(container.getContext()).load(_imagepath.get(0))
.priority(priority.HIGH).动画(android.R.anim.fade_in)
.override(120,87).fitCenter().skipMemoryCache(false)
.diskCacheStrategy(diskCacheStrategy.RESULT)
.into(imgDisplay);
((ViewPager)容器)。添加视图(viewLayout);
返回视图布局;
}
@凌驾
公共项(视图组容器、int位置、对象){
((ViewPager)容器)。移除视图((RelativeLayout)对象);
}
}
XML>>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:src="@drawable/arrow"
        android:rotation="180"
        android:id="@+id/back"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />


</LinearLayout>

每个视图的XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imgDisplay"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="fitCenter" />

</RelativeLayout>

错误>>>

E/AndroidRuntime:致命异常:主 进程:com.example.cosmic.zumi_test,PID:22289 java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.Object 空值上的android.content.Context.getSystemService(java.lang.String)“” 对象引用 位于android.view.LayoutInflater.from(LayoutInflater.java:219) 在 com.example.cosmic.zumi_test.FullScreenImageAdapter.InstanceItem(FullScreenImageAdapter.java:56) 位于android.support.v4.view.ViewPager.addNewItem(ViewPager.java:1034) 位于android.support.v4.view.ViewPager.populate(ViewPager.java:1182) 位于android.support.v4.view.ViewPager.populate(ViewPager.java:1116) 在android.support.v4.view.ViewPager.onMeasure上(ViewPager.java:1642) 在android.view.view.measure(view.java:17572) 位于android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5604) 在 widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
LayoutInflater inflater = LayoutInflater.from(container.getContext());
FullScreenImageAdapter adapterPhotoViewPager = new FullScreenImageAdapter(v.getContext(), pagerListItems);
@Override
public Object instantiateItem(ViewGroup container, int position) {
    ImageView imgDisplay;
  //  Button btnClose;

    inflater = (LayoutInflater) _activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image_each, container,
            false);

    imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay);

    Glide.with(container.getContext()).load(_imagePaths.get(position))
            .priority(Priority.HIGH).animate(android.R.anim.fade_in)
            .override(120, 87).fitCenter().skipMemoryCache(false)
            .diskCacheStrategy(DiskCacheStrategy.RESULT)
            .into(imgDisplay);

    ((ViewPager) container).addView(viewLayout);

    return viewLayout;
}