如何在firebase中填充recyclerview(populateview方法不起作用)

时间:2018-01-26 17:18:01

标签: android firebase firebase-realtime-database android-recyclerview firebaseui

我尝试用来自firebase的数据填充recyclerview。使用较旧的方法,但populateview()甚至在创建firebaserecycleradapter之后都没有。

我的代码在以前版本的android studio中有效,但现在,populateview()在创建新的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);
}
}

而不是populate(),现在来了

 @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);

我不知道如何使用onBindViewholder并填充从数据库中检索的数据。

0 个答案:

没有答案