How to display database objects in alert box thru recycler view

Viewed 16

I am making a clickable calendar with alert dialog, it is running well, but when I click the date one the calendar it only show gray screen like this this is when a date is not clicked and this happen if i click a date plus it doesn't display anything from database, my database is not empty, here is my code on alert dialog:

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDialogFragment;
import androidx.fragment.app.DialogFragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;

public class Dialog extends AppCompatDialogFragment {
    RecyclerView recyclerView;
    DatabaseReference database;
    dialogAdapter dialogAdapter;
    ArrayList<Reminder> list;

    public View onCreateDialog(Bundle savedInstanceState, ViewGroup container, LayoutInflater inflater) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        View roortView = inflater.inflate(R.layout.popup_window, container);

        //Retrieve
        recyclerView = (RecyclerView) roortView.findViewById(R.id.userList);
        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
        database = FirebaseDatabase.getInstance().getReference("Reminder");
        list = new ArrayList<Reminder>();
        dialogAdapter = new dialogAdapter(this.getActivity(), list);
        recyclerView.setAdapter(dialogAdapter);

        database.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                    Reminder reminder = dataSnapshot.getValue(Reminder.class);
                    list.add(reminder);

                }
                dialogAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }

        });


        return roortView;
    }
}

   It doesn't show any error on the logcat so I don't know what i did wrong 
0 Answers
Related