Вот мой код фрагмента, с которым мне нужна помощь.
Я пытаюсь показать несколько изображений из 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();
}