Ich versuche, Daten aus Firebase-Datenbank abrufen, wenn ich versuche, Daten zum allerersten Mal nach der Installation der App abrufen, wird nichts in Recycler angezeigt, aber wenn ich zurück und noch einmal drücken versuchen, Daten abzurufen, das richtig angezeigt, schlagen Sie mir geändert, die ich in meinem Code tun soll, so dass die Daten richtig im ersten VersuchDaten von Firebase-Datenbank wird nicht richtig angezeigt
Methode zur Rückkehr 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;
}
Adpater Klasse
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();
}
angezeigt
}
ViewHolder Klasse
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 lädt Daten asynchron. Zu dem Zeitpunkt, an dem Sie "adinfolist" zurückgegeben haben, wurde noch nichts ausgefüllt. Siehe http://stackoverflow.com/questions/33203379/setting-singleton-property-value-in-firebase-listener –
Eigentlich bin ich neu in der Android-Entwicklung können Sie bitte erarbeiten, was Sie in Bezug auf meinen Code sagen wollen. –
@PriyankaKadam meine Antwort hat dir nicht geholfen? –