How can i retrieve images and title from "01 and 02 which are child of Data" as shown in pic. When i run app two cards are shown there on recycler view but there is no image and title. Those two cards are blank.
I logged the Image from 01 but in logcat its value is showing null.
How Can i fix this
Main Activity.java
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
int spacing = 80;
int spancount = 2;
boolean includeEdge = false;
ArrayList<MemeData> memeData1 = new ArrayList<>();
DatabaseReference databaseReference;
FirebaseDatabase databasepath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
databasepath = FirebaseDatabase.getInstance();
databaseReference = databasepath.getReference("Data");
recyclerView.addItemDecoration(new GridLayoutSpacing(2, spacing, includeEdge));
final mainAdapter mainAdapter = new mainAdapter(MainActivity.this, memeData1);
recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2));
recyclerView.setAdapter(mainAdapter);
databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
MemeData memeDetail = dataSnapshot.getValue(MemeData.class);
memeData1.add(memeDetail);
mainAdapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
mainAdapter
public class mainAdapter extends RecyclerView.Adapter<mainAdapter.ViewHolder> {
Context context;
ArrayList<MemeData> memeData1 ;
public mainAdapter(Context context, ArrayList<MemeData> memeData) {
this.context = context;
this.memeData1 = memeData;
}
@NonNull
@Override
public mainAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.custom, parent, false));
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
MemeData memeData = memeData1.get(position);
holder.txtView.setText(memeData.getTitle());
Glide.with(context).load(memeData.getImage()).into(holder.imageView);
}
@Override
public int getItemCount() {
return memeData1.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
LinearLayout linearLayout;
TextView txtView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
linearLayout = itemView.findViewById(R.id.linearLayout);
imageView = itemView.findViewById(R.id.imgView1);
txtView = itemView.findViewById(R.id.txtView);
}
}
}
MemeData
public class MemeData {
String title;
String image;
public MemeData(){
}
public MemeData(String title,String image){
this.image = image;
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}