【发布时间】:2017-05-01 22:22:48
【问题描述】:
我正在尝试从 firebase 数据库中检索数据,当我在安装应用程序后第一次尝试检索数据时,回收器视图中没有显示任何内容,但是当我按下并再次尝试检索数据时,它会正确显示,建议我更改我应该在我的代码中执行的操作,以便在第一次尝试时正确显示数据
用于返回ArrayList的方法
public ArrayList<SaveAddInformation> retrieve(){
AdvertisementRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {
SaveAddInformation mModel = eventSnapshot.getValue(SaveAddInformation.class);
Log.d("DATA" ,""+ mModel);
adinfolist.add(mModel);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return adinfolist;
}
适配器类
Context c;
ArrayList<SaveAddInformation> adinfolist;
public MyAdapter(Context c, ArrayList<SaveAddInformation> adinfolist) {
this.c = c;
this.adinfolist = adinfolist;
}
@Override
public MyViewholder onCreateViewHolder(ViewGroup parent, int viewType) {
View v= LayoutInflater.from(c).inflate(R.layout.design_row,parent,false);
MyViewholder myViewholder=new MyViewholder(v);
return myViewholder;
}
@Override
public void onBindViewHolder(MyViewholder holder, int position) {
SaveAddInformation save=adinfolist.get(position);
holder.titleTv.setText(save.getTitleS());
holder.rentamt.setText(save.getRent_amount());
holder.rentdays.setText(save.getRentDayS());
holder.desc.setText(save.getDescriptionS());
holder.setImage(getApplicationContext(), save.getImageuri());
// holder.titleTv.setText((CharSequence) adinfolist.get(position));
}
@Override
public int getItemCount() {
return adinfolist.size();
}
}
ViewHolder 类
public MyViewholder(View itemView) {
super(itemView);
titleTv=(TextView)itemView.findViewById(R.id.Titletextv);
rentamt=(TextView)itemView.findViewById(R.id.rent_amount);
rentdays=(TextView)itemView.findViewById(R.id.days_rent);
desc=(TextView)itemView.findViewById(R.id.descTV);
}
public void setImage(Context applicationContext, String imageuri) {
adimg=(ImageView)itemView.findViewById(R.id.ad_image);
// We Need TO pass Context
Picasso.with(applicationContext).load(imageuri).into(adimg);
}
【问题讨论】:
-
Firebase 异步加载数据。当您返回
adinfolist时,尚未填充。见stackoverflow.com/questions/33203379/… -
其实我是 android 开发的新手,请您详细说明您对我的代码的意思。
-
@PriyankaKadam 我的回答对你没有帮助?
标签: android firebase firebase-realtime-database android-recyclerview