0

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;
}

}

0 Answers0