【问题标题】:Recyclerview is not loaded (it is just showing the empty screen)Recyclerview 未加载(它只是显示空屏幕)
【发布时间】:2023-03-15 12:15:01
【问题描述】:

我按照此视频在我的应用中显示了 firebase-firestore 数据。 但它没有加载,显示空白屏幕。 除了变量之外,我几乎遵循了所有相同的代码,但我不知道为什么它不起作用。我检查了firestore中的规则,它允许读写。 这是我的代码,我尝试重新定位线条,再次设置布局......但不起作用。 请帮我。 (哦,而且运行代码没有错误)

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

private RecyclerView recyclerViewlist;
private FirestoreRecyclerAdapter adapter;
private FirebaseFirestore db = FirebaseFirestore.getInstance();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.floatingActionButton).setOnClickListener(onClickListener);
    recyclerViewlist = findViewById(R.id.recyclerView);
    recyclerViewlist.setHasFixedSize(true);

    init();
    getPostList();

    adapter.notifyDataSetChanged();
    recyclerViewlist.setAdapter(adapter);

}

private void init() {
    recyclerViewlist.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    db = FirebaseFirestore.getInstance();
}

private void getPostList() {
    Query query = db.collection("post");

    //recyclerOptions
    FirestoreRecyclerOptions<Writeinfo> options = new FirestoreRecyclerOptions.Builder<Writeinfo>()
            .setQuery(query, Writeinfo.class)
            .build();

    adapter = new FirestoreRecyclerAdapter<Writeinfo, WriteinfoViewHolder>(options) {
        @NonNull
        @Override
        public WriteinfoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycleview_layout, parent, false);
            return new WriteinfoViewHolder(view);
        }

        @Override
        protected void onBindViewHolder(@NonNull WriteinfoViewHolder holder, int position, @NonNull Writeinfo model) {
            Log.e("WOW", Integer.toString(position));
            holder.cvTitle.setText(model.getTitle());
            holder.cvContents.setText(model.getContents());
            //              holder.cvContents.setText(model.getContents());
        }

        @Override
        public void onError(FirebaseFirestoreException e) {
            Log.e("error", e.getMessage());
        }
    };
}

private static class WriteinfoViewHolder extends RecyclerView.ViewHolder {

    public TextView cvTitle;
    public TextView cvContents;

    public WriteinfoViewHolder(View itemView) {
        super(itemView);

        cvTitle = itemView.findViewById(R.id.cvTitle);
        cvContents = itemView.findViewById(R.id.cvContents);

    }
}

@Override
protected void onStop(){
    super.onStop();
    adapter.stopListening();
}


@Override
protected void onStart() {
    super.onStart();
    adapter.startListening();
}

【问题讨论】:

标签: android firebase google-cloud-firestore android-recyclerview


【解决方案1】:

您的计数方法在哪里。它应该在您的适配器内,以便您的 RecylerView 知道它添加项目(视图)的次数。它不应该是零

@Override
public int getItemCount() {
    return ListLength;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 2017-01-13
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    相关资源
    最近更新 更多