android - 当我更改我的活动时,我的回收站视图不显示
问题描述
当我的应用程序启动时,recyclerview 会加载。但是当我改变我的活动时,比如当我从 DashboardActivity 转到 ProfileActivity 并返回 DashboardActivity 时,recyclerview 消失了。我不明白这个问题。
这部分在 onCreate 方法中
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setAdapter(adapter);
adapter.startListening();
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
这是 onStart 方法
@Override
protected void onStart() {
super.onStart();
Query query = firebaseFirestore.collection("requests")
.orderBy("creationTime", Query.Direction.DESCENDING);
FirestoreRecyclerOptions<Request> options = new FirestoreRecyclerOptions.Builder<Request>()
.setQuery(query, Request.class)
.build();
FirestoreRecyclerAdapter<Request, RequestViewHolder> adapter =
new FirestoreRecyclerAdapter<Request, RequestViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull RequestViewHolder holder, int i, @NonNull Request request) {
holder.requestUserNameTV.setText(request.getUser().getFullName());
holder.requestCreationTimeTV.setText(request.getCreationTime());
holder.requestedBloodGroupTV.setText(request.getBloodGroup());
holder.requestLocationTV.setText(request.getLocation());
holder.requestMessageTV.setText(request.getMessage());
}
@NonNull
@Override
public RequestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);
return new RequestViewHolder(v);
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
这是 ViewHolder
public class RequestViewHolder extends RecyclerView.ViewHolder {
public TextView requestUserNameTV, requestCreationTimeTV, requestedBloodGroupTV;
public TextView requestLocationTV, requestMessageTV;
public LinearLayout ll;
public RequestViewHolder(@NonNull View itemView) {
super(itemView);
ll = itemView.findViewById(R.id.ll);
requestUserNameTV = itemView.findViewById(R.id.requestUserNameTV);
requestCreationTimeTV = itemView.findViewById(R.id.requestCreationTimeTV);
requestedBloodGroupTV = itemView.findViewById(R.id.requestedBloodGroupTV);
requestLocationTV = itemView.findViewById(R.id.requestedLocationTV);
requestMessageTV = itemView.findViewById(R.id.requestMessageTV);
}
}
解决方案
将您的代码从 OnStart 移至 OnCreate。它应该可以解决您的问题
推荐阅读
- android - 无法在华为设备上为 H264 编码视频设置远程 SDP 报价
- mysql - 使用 Laravel Eloquent 模型查询多个表关系
- python - 如果 sql 有日期条件,pyodbc 结果返回空
- javascript - 触发缓存以确保数据正确问题 - swr 挂钩 - next.js(使用打字稿)
- webix - 带有水平滚动条的树表
- java - 如果连接丢失,我想显示以前的数据而不是空列表
- docker - docker run --entrypoint "python /path/to/file.py" 导致“没有这样的文件或目录:未知。” 错误
- python - 如何在我的 Django+drf-yasg 项目中使用 editor.swagger.io 中的 swagger.json?
- ubuntu - 在 ubuntu linux 中以 root 权限运行 VS Code 不再起作用
- python - 来自分组数据的 2×2 热图矩阵可视化