简体   繁体   中英

Fetching data from firebase, Screen shows blank after executing in android

MainActivity:

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 

I'm not getting any errors but still my screen shows empty, Actually it is displaying null data how to find it and guys tell me how to solve this issue I know I made small mistake somewhere in this code help me to rectify it Thank you.............................................

Replace this code

From

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

To

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

Hope this work.

do u have any messages in firebase database or its empty?

you can add some messages through firebase so you can check it

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM