0

I tried populating the recyclerview with data from firebase. Used older methods but populateview() doesnt even come after creating a firebaserecycleradapter.

My code which works in previous version of android studio but now,the populateview() doesn't comes after creating new firebaserecycleradapter.

public class MainActivity extends AppCompatActivity {

private RecyclerView mBloglist;

private DatabaseReference mDatabase;

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

    mDatabase= FirebaseDatabase.getInstance().getReference().child("Blog");
    mBloglist=(RecyclerView)findViewById(R.id.Blog_list);
    mBloglist.setHasFixedSize(true);
    mBloglist.setLayoutManager(new LinearLayoutManager(this));
}

@Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(Blog.class,
            R.layout.blog_row,
            BlogViewHolder.class,
            mDatabase
            ) {
        @Override
       protected void populateViewHolder(BlogViewHolder viewHolder,Blog model,int position){
            viewHolder.setTitle(model.getTitle());
            viewHolder.setDesc(model.getDesc());
        }
    };
    mBloglist.setAdapter(firebaseRecyclerAdapter);

}


public static class BlogViewHolder extends RecyclerView.ViewHolder{

    View mView;

    public BlogViewHolder(View itemView) {
        super(itemView);
        itemView = mView;
    }

    public void setTitle(String title){
        TextView post_title=(TextView)mView.findViewById(R.id.post_title);
        post_title.setText(title);
    }
    public void setDesc(String desc){
        TextView post_desc=(TextView)mView.findViewById(R.id.post_desc);
        post_desc.setText(desc);

    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   getMenuInflater().inflate(R.menu.main_menu,menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
   if (item.getItemId() == R.id.action_add){

       startActivity(new Intent(MainActivity.this,PostActivity.class));
   }


    return super.onOptionsItemSelected(item);
}
}

Instead of populate() , now this comes

 @Override
protected void onStart() {
    super.onStart();
    FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Blog, BlogViewHolder>(Blog.class,
            R.layout.blog_row,
            BlogViewHolder.class,
            mDatabase
            ) {
        @Override
        protected void onBindViewHolder(BlogViewHolder holder, int position, Blog model) {


        }

        @Override
        public BlogViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return null;
        }
    };
    mBloglist.setAdapter(firebaseRecyclerAdapter);

And i dont know how to use onBindViewholder and populate the data retrieved from the database.

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
  • check the duplicate to prevent errors related to firebaseoptions later on.. also inside onBindViewHolder you do the same as you did inside populateViewHolder `viewHolder.setTitle(model.getTitle()); viewHolder.setDesc(model.getDesc());` //inside onBindViewHolder – Peter Haddad Jan 26 '18 at 17:22
  • `mDatabase= FirebaseDatabase.getInstance().getReference().child("Blog"); mBloglist=(RecyclerView)findViewById(R.id.Blog_list); mBloglist.setHasFixedSize(true); mBloglist.setLayoutManager(new LinearLayoutManager(this)); } @Override protected void onStart() { super.onStart(); FirebaseRecyclerAdapter firebaseRecyclerAdapter=new FirebaseRecyclerAdapter(Blog.class, R.layout.blog_row, BlogViewHolder.class, mDatabase ) ` Can someone help me out? – gravitydestroyer Jan 26 '18 at 17:55
  • what is the problem? – Peter Haddad Jan 26 '18 at 18:38
  • `FirebaseRecyclerAdapter firebaseRecyclerAdapter=new FirebaseRecyclerAdapter(Blog.class, R.layout.blog_row, BlogViewHolder.class, mDatabase )` Error pops in. Says i cant use parameters. – gravitydestroyer Jan 26 '18 at 18:43
  • yes ofcourse, please read the link provided this https://stackoverflow.com/a/47364813/7015400. You have to as provided in the answer – Peter Haddad Jan 26 '18 at 18:45
  • Yeah i saw the post.. But faced certain problems. Can you just help me out? i mean modify my code according to the recent firebase ui to set it as an example? – gravitydestroyer Jan 27 '18 at 13:50

0 Answers0