3 回答
TA贡献1798条经验 获得超3个赞
在调用 adapter.notifyDataSetChanged 之前必须先初始化适配器
adapter = new RecyclerViewAdapter(getActivity(), list);
getDatafromFirebase();
TA贡献1875条经验 获得超3个赞
我通过在单独的函数中调用Listview的add函数解决了这个问题:
public void getDatafromFirebase(){
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
list.clear();
DataSnapshot Videoreference = dataSnapshot.child("Videos");
for (DataSnapshot videoschild : Videoreference.getChildren()){
DataSnapshot description = videoschild.child("Description");
DataSnapshot duration = videoschild.child("Duration");
DataSnapshot title = videoschild.child("Title");
DataSnapshot thumbnail = videoschild.child("Thumbnail");
DataSnapshot date = videoschild.child("Date");
DataSnapshot time = videoschild.child("Time");
updatelist(description.getValue(String.class),
title.getValue(String.class),
String.valueOf(duration.getValue()),
thumbnail.getValue(String.class),
String.valueOf(date.getValue()),
String.valueOf(time.getValue()));
}
adapter.notifyDataSetChanged();
progressbar.setVisibility(View.GONE);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(getActivity(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
public void updatelist(String desc,String title,String duration,String thumbnail,String Date,String time){
FirebaseVideoDetials details = new FirebaseVideoDetials();
details.setDescription(desc);
details.setDuration(duration);
details.setTitle(title);
details.setThumbnail(thumbnail);
details.setTime(time);
details.setDate(Date);
list.add(details);
}
添加回答
举报