android r view,android – ReyclerView不能正常工作

在该博客中,作者遇到了一个Android应用开发的问题,具体是在RecyclerView中无法显示从FirebaseDatabase获取的模型列表。尽管数据成功保存到ArrayList中,但RecyclerView并未呈现任何内容。代码显示作者设置了一个监听器来获取Firebase的数据,并创建了自定义的RecyclerView.Adapter来展示视频信息,包括标题、点赞数和观看数。然而,由于`VideoViewAdapter`的`getItemCount()`返回0,导致列表未显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试在recyclerview上显示我的模型列表.但由于某种原因,它没有显示任何东西.我从FirebaseDatabase获取列表项并将所有数据保存在“videoList”上.然后我想呈现我收到的数据,但它没有显示任何内容.

请告诉我我做错了什么.

public class MyPlayListFragment extends Fragment {

private FirebaseDatabase refToVideos;

private FirebaseUser currentUser;

private ArrayList videosList;

private VideoViewAdapter adapter;

private RecyclerView rvVideos;

public MyPlayListFragment() {

// Required empty public constructor

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View v = inflater.inflate(R.layout.fragment_my_play_list, container, false);

rvVideos = (RecyclerView)v.findViewById(R.id.rvVideos);

return v;

}

@Override

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {

super.onViewCreated(view, savedInstanceState);

videosList = new ArrayList<>();

refToVideos = FirebaseDatabase.getInstance();

currentUser = FirebaseAuth.getInstance().getCurrentUser();

refToVideos.getReference(Params.VIDEOS).addListenerForSingleValueEvent(new ValueEventListener() {

@Override

public void onDataChange(DataSnapshot dataSnapshot) {

for (DataSnapshot snapshot : dataSnapshot.getChildren()){

videosList.add(snapshot.getValue(Video.class));

}

}

@Override

public void onCancelled(DatabaseError databaseError) {

}

});

adapter = new VideoViewAdapter(getContext(),videosList);

rvVideos.setLayoutManager(new LinearLayoutManager(getContext()));

rvVideos.setAdapter(adapter);

}

public class VideoViewAdapter extends RecyclerView.Adapter{

private LayoutInflater inflater;

private Context context;

private ArrayList data;

public VideoViewAdapter( Context context, ArrayList data) {

this.context = context;

this.inflater = LayoutInflater.from(context);

this.data = data;

}

@Override

public VideoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View v = inflater.inflate(R.layout.video_item,parent,false);

return new VideoViewHolder(v);

}

@Override

public void onBindViewHolder(VideoViewHolder holder, int position) {

Video video = data.get(position);

holder.tvTitleVideo.setText(video.getVideoName());

holder.tvLikes.setText(String.valueOf(video.getLikes()));

holder.tvViews.setText(String.valueOf(video.getViews()));

Uri uri = Uri.parse(video.getVideoURL());

holder.videoViewUser.setVideoURI(uri);

holder.videoViewUser.start();

}

@Override

public int getItemCount() {

return 0;

}

}

public class VideoViewHolder extends RecyclerView.ViewHolder{

private TextView tvTitleVideo,tvLikes,tvViews;

private VideoView videoViewUser;

public VideoViewHolder(View itemView) {

super(itemView);

tvTitleVideo = (TextView) itemView.findViewById(R.id.videoTitle);

tvLikes = (TextView)itemView.findViewById(R.id.tvLikes);

tvViews = (TextView)itemView.findViewById(R.id.tvViews);

videoViewUser = (VideoView)itemView.findViewById(R.id.videoViewUser);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值