Android onCreateView寻呼机适配器

Android onCreateView寻呼机适配器,android,android-viewpager,fragment,fragment-oncreateview,Android,Android Viewpager,Fragment,Fragment Oncreateview,尝试在空对象引用上调用虚拟方法“void androidx.viewpager.widget.viewpager.setAdapter(androidx.viewpager.widget.PagerAdapter)” 我正在尝试使用android material design实现滑动选项卡布局。但它给了我NullPointerException。以下是我目前的代码: 公共类HomeFragment扩展了片段{ private HomeViewModel homeViewModel; priva

尝试在空对象引用上调用虚拟方法“void androidx.viewpager.widget.viewpager.setAdapter(androidx.viewpager.widget.PagerAdapter)”

我正在尝试使用android material design实现滑动选项卡布局。但它给了我NullPointerException。以下是我目前的代码:

公共类HomeFragment扩展了片段{

private HomeViewModel homeViewModel;
private List<Slide> listSlides;
private ViewPager slidePager;
private TabLayout indicator;


 public View onCreateView(@NonNull LayoutInflater inflater,
                         ViewGroup container, Bundle savedInstanceState) {

    homeViewModel =
            ViewModelProviders.of(this).get(HomeViewModel.class);
    View root = inflater.inflate(R.layout.fragment_home, container, false);

     listSlides = new ArrayList<>();
     listSlides.add(new Slide(R.drawable.a, "slide title"));
     listSlides.add(new Slide(R.drawable.b, "slide title"));

     final SliderPagerAdapter adapter = new SliderPagerAdapter(getContext(), listSlides);

     homeViewModel.getText().observe(this, new Observer<String>() {
         @Override
         public void onChanged(@Nullable String s) {
             slidePager.setAdapter(adapter);
         }
     });



    return root;

}
私有HomeViewModel HomeViewModel;
私人名单幻灯片;
专用可视页滑盖;
专用表格布局指示器;
公共视图onCreateView(@NonNull layoutiner充气机,
视图组容器,捆绑包savedInstanceState){
homeViewModel=
ViewModelProviders.of(this.get)(HomeViewModel.class);
视图根=充气机。充气(R.layout.fragment\u home,container,false);
listSlides=新建ArrayList();
添加(新幻灯片(R.drawable.a,“幻灯片标题”);
添加(新幻灯片(R.drawable.b,“幻灯片标题”);
final SliderPagerAdapter=新的SliderPagerAdapter(getContext(),listSlides);
homeViewModel.getText().observe(这是新的观察者(){
@凌驾
公共void onChanged(@Nullable String s){
滑块。设置适配器(适配器);
}
});
返回根;
}
}

公共类SliderPagerAdapter扩展了PagerAdapter{

private Context mText;
private List<Slide> mList;

public SliderPagerAdapter(Context mText, List<Slide> mList) {
    this.mText = mText;
    this.mList = mList;
}


@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {


    LayoutInflater inflater = (LayoutInflater) mText.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View slideLayout = inflater.inflate(R.layout.slider_item,null);

    ImageView slideImg = slideLayout.findViewById(R.id.slide_img);
    TextView slideText= slideLayout.findViewById(R.id.slide_title);

    slideImg.setImageResource(mList.get(position).getImage());
    slideText.setText(mList.get(position).getTitle());

    container.addView(slideLayout);
    return slideLayout;


}

@Override
public int getCount() {
    return mList.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) {
    container.removeView((View) object);
}
私有上下文多行文字;
私人名单;
公共SliderPagerAdapter(上下文多行文字、列表多行列表){
this.mText=mText;
this.mList=mList;
}
@非空
@凌驾
公共对象实例化项(@NonNull视图组容器,int位置){
LayoutInflater充气器=(LayoutInflater)mText.getSystemService(Context.LAYOUT\u充气器\u服务);
查看slideLayout=充气机。充气(R.layout.slider\u项,空);
ImageView slideMg=slideLayout.findViewById(R.id.slide\u img);
text视图slideText=slideLayout.findviewbyd(R.id.slide\u title);
setImageResource(mList.get(position.getImage());
slideText.setText(mList.get(position.getTitle());
container.addView(slideLayout);
返回幻灯片;
}
@凌驾
public int getCount(){
返回mList.size();
}
@凌驾
公共布尔值isViewFromObject(@NonNull视图,@NonNull对象){
返回视图==对象;
}
@凌驾
public void destructionItem(@NonNull视图组容器,int位置,@NonNull对象){
container.removeView((视图)对象);
}

}

您没有实例化
幻灯片,因此当您尝试设置适配器时,它实际上是一个空对象。您应该在
ViewPager
上调用
findViewById