【发布时间】:2021-12-31 00:44:35
【问题描述】:
我在 youtube 和博客中关注了一些视频,以创建一个从 firestore 检索数据的 recyclerview。应用程序运行成功,但它是空白的。
我想要做的是创建一个回收器,以获取有关描述的帖子的图像和标题。之后我会将它添加到其他布局中。
这是我的代码
public class MainActivity extends AppCompatActivity {
RecyclerView recview;
PostAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recview=(RecyclerView)findViewById(R.id.BourceRecycler);
recview.setLayoutManager(new LinearLayoutManager(this));
FirebaseRecyclerOptions<Post> options =
new FirebaseRecyclerOptions.Builder<Post>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Bources"), Post.class)
.build();
adapter=new PostAdapter(options);
recview.setAdapter(adapter);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}}
adapter
public class PostAdapter extends FirebaseRecyclerAdapter<Post, PostAdapter.PostViewHolder> {
public PostAdapter(@NonNull FirebaseRecyclerOptions<Post> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull PostViewHolder holder, int position, @NonNull Post model)
{
holder.headline.setText(model.getHeadline());
Glide.with(holder.img.getContext()).load(model.getImage()).into(holder.img);
}
@NonNull
@Override
public PostViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.post,parent,false);
return new PostViewHolder(view);
}
public class PostViewHolder extends RecyclerView.ViewHolder {
ImageView img;
TextView headline, description;
public PostViewHolder(@NonNull View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.image);
headline = (TextView) itemView.findViewById(R.id.headline);
}
}}
Post
public class Post {
String image;
String headline;
String description;
public Post(){}
public Post(String image, String headline, String description) {
this.image = image;
this.headline = headline;
this.description = description;
}
public void setImage(String image) {
this.image = image;
}
public void setHeadline(String headline) {
this.headline = headline;
}
public void setDescription(String description) {
this.description = description;
}
public String getImage() {
return image;
}
public String getHeadline() {
return headline;
}
public String getDescription() {
return description;
}
}
【问题讨论】:
标签: android google-cloud-firestore android-recyclerview firebaseui