Я пытаюсь показать несколько изображений из firebase в viewpager - PullRequest
1 голос
/ 02 августа 2020

Вот мой код фрагмента, с которым мне нужна помощь.

Я пытаюсь показать несколько изображений из firebase в viewpager, но когда я добавляю viewpager в adapterPageView, появляется ошибка

java .lang.NullPointerException: попытка вызвать виртуальный метод void androidx.viewpager.widget.ViewPager.setAdapter (androidx.viewpager.widget.PagerAdapter) для ссылки на нулевой объект.

Помогите решить эту проблему .....

HomeFragment extends Fragment {

ViewPager viewPager;
DotsIndicator Dots;

RecyclerView recyclerView;

List<ModelPostViewPage> modelPostViewPageList;

AdapterPageView adapterPageView;


public HomeFragment() {
    // Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_home, container, false);

    Dots = view.findViewById(R.id.dots);
    viewPager = view.findViewById(R.id.viewPager);

    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());

    modelPostViewPageList = new ArrayList<>();

}
private void loadPosts() {
    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Posts");
    ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
           
            for (DataSnapshot ds: dataSnapshot.getChildren()){
                ModelPostViewPage modelPostView= ds.getValue(ModelPostViewPage.class);
                modelPostViewPageList.add(modelPostView);

                adapterPageView = new AdapterPageView(getActivity(),modelPostViewPageList);

          //////// Here my code getting error

                viewPager.setAdapter(adapterPageView);///error...............on a null object reference
                Dots.setViewPager(viewPager)
            }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Toast.makeText(getActivity(),""+databaseError.getMessage(),Toast.LENGTH_SHORT).show();
        }
    });
}

вот xml

           <androidx.viewpager.widget.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:background="@color/white"/>

         <com.tbuonomo.viewpagerdotsindicator.DotsIndicator
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="center"
             android:id="@+id/dots"
             app:dotsColor="@color/gray"
             app:selectedDotColor="@color/corelcolor"
             app:dotsSize="8dp"
             app:progressMode="true"
             android:background="@color/white"/>

вот Pageradapter

            public class AdapterPageView extends PagerAdapter {

private Context context;
private LayoutInflater layoutinflater;

ViewPager viewPager;
ImageView imageView;

List<ModelPostViewPage>ModelPostViewList;

public AdapterPageView(Context context, List<ModelPostViewPage> modelPostViewList) {
    this.context = context;
    this.ModelPostViewList = modelPostViewList;
}

@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
    layoutinflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view = LayoutInflater.from(container.getContext()).inflate(R.layout.post_imagelayout, container, false);

    imageView = view.findViewById(R.id.pImageIv);
    viewPager = (ViewPager) container;
    Picasso.get().load(ModelPostViewList.get(position).getpImage()).into(imageView);
    viewPager.addView(view,0);
    return view;
}
@Override
public int getCount() {
    return ModelPostViewList.size();
}
...