我尝试用来自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并填充从数据库中检索的数据。