Firebase से डेटा प्राप्त करना, Android में निष्पादित होने के बाद स्क्रीन खाली दिखाई देती है

Nov 23 2020

मुख्य गतिविधि:

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 

मुझे कोई त्रुटि नहीं मिल रही है, लेकिन फिर भी मेरी स्क्रीन खाली दिख रही है, वास्तव में यह अशक्त डेटा प्रदर्शित कर रहा है कि इसे कैसे ढूंढा जाए और लोग मुझे बताएं कि इस मुद्दे को कैसे हल किया जाए मुझे पता है कि मैंने इस कोड में कहीं छोटी सी गलती की, मुझे इसे सुधारने में मदद करें धन्यवाद .............................................

जवाब

SarveshHon Nov 23 2020 at 18:19

इस कोड को बदलें

से

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

सेवा

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

इस काम की उम्मीद है।