首页 > 解决方案 > 当我更改我的活动时,我的回收站视图不显示

问题描述

当我的应用程序启动时,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);
        }

    }

标签: android

解决方案


将您的代码从 OnStart 移至 OnCreate。它应该可以解决您的问题


推荐阅读