Récupération des données depuis Firebase, l'écran est vide après l'exécution sous Android

Nov 23 2020

Activité principale:

public class MainActivity extends AppCompatActivity {
   private RecyclerView mRecyclerView;
   private FirebaseAdapter mAdapter;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions<DataClass> options =
                new FirebaseRecyclerOptions.Builder<DataClass>()
                        .setQuery(FirebaseDatabase.getInstance().getReference().child("Users"), DataClass.class)
                        .build();
        mAdapter = new FirebaseAdapter(options);
        mRecyclerView.setAdapter(mAdapter);
        mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
    }
    @Override
    protected void onStart() {
        super.onStart();
        mAdapter.startListening();
    }
    @Override
    protected void onStop() {
        super.onStop();
        mAdapter.stopListening();
    }
}

FirebaseAdapter

public class FirebaseAdapter extends FirebaseRecyclerAdapter<DataClass,FirebaseAdapter.MyviewHolder> {
    private static final String TAG = "FirebaseAdapter";
    public FirebaseAdapter(@NonNull FirebaseRecyclerOptions<DataClass> options) {
        super(options);
    }

    @Override
    protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
      holder.name.setText(model.getName());
      holder.age.setText(model.getAge());
        Log.d(TAG, "onBindViewHolder: Now Bind method executing");
    }

    @NonNull
    @Override
    public MyviewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View v=  layoutInflater.inflate(R.layout.row_represent,parent,false);
        MyviewHolder v1 = new MyviewHolder(v);
        Log.d(TAG, "onCreateViewHolder: Now on create method executing");
        return v1;
    }
    
    public static class MyviewHolder extends RecyclerView.ViewHolder{
        TextView name;
        TextView age;
        public MyviewHolder(@NonNull View itemView) {
            super(itemView);
            name = (TextView)itemView.findViewById(R.id.names);
            age = (TextView) itemView.findViewById(R.id.age);
        }
    }
}

DataClass

public class DataClass {

    private  String name;
       private String age;

       public DataClass(){

       }

    public DataClass(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }
}



 doubt in this parts
     public DataClass(String name, String age) {
                this.name = name;
                this.age = age;
            }
          protected void onBindViewHolder(@NonNull MyviewHolder holder, int position, @NonNull DataClass model) {
              holder.name.setText(model.getName());
              holder.age.setText(model.getAge());
                Log.d(TAG, "onBindViewHolder: Now Bind method executing");
            }
because showing me that constructor never used 

Je n'obtiens aucune erreur mais mon écran est toujours vide, en fait, il affiche des données nulles comment le trouver et les gars me disent comment résoudre ce problème Je sais que j'ai fait une petite erreur quelque part dans ce code aidez-moi à le rectifier Merci .............................................

Réponses

SarveshHon Nov 23 2020 at 18:19

Remplacez ce code

De

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

À

RecyclerView.LayoutManager layoutManager;
layoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);

J'espère que ce travail.