android - 我正在尝试将多个图像从 firebase 显示到 viewpager
问题描述
这是我需要帮助的片段代码。
我试图从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();
}
解决方案
推荐阅读
- azure - 如何将图像转换为 Base64 字符串,并转换回图像,保存到 azure blob
- python - 如何检查一个项目是否在硒中显示或什至在那里?
- r - 从数据框中的前一列中减去每一列
- r - 4组1个测量变量的Lineair回归图,其中1组为参考组
- c# - 如何在正确的线程中从 MAUI 代码隐藏调用 WinRT?
- sql - Postgres 查询显示可为空的字段
- php - 如何使用 cURL 或 PHP 获取 cookie 特定值
- javascript - Select2 删除选项在 jquery 中不起作用
- c++ - Embarcadero C++ builder 10.4.2-附加到进程在 64 位上不起作用
- android - 如何在顶部构建具有比例的自定义搜索栏