如何使用FirebaseRecyclerAdapter实现ViewModel

问题描述

我正在尝试使用ViewModel将数据库与UI控制器分离,并防止持续使用数据。我已经寻找解决方案好几天了,没有任何进展。 我在我的应用程序中使用Firebase RecyclerAdapter,并且代码运行良好,但是我不知道如何使用RecyclerAdapter来实现LiveData Observer。 任何示例应用程序或代码片段都会对我有很大帮助。

这是我的片段中的示例代码

private void fetchValues() {
    Query query1 = mDatabaseReference;

    FirebaseRecyclerOptions<Course> options = new FirebaseRecyclerOptions.Builder<Course>()
            .setQuery(query1,new SnapshotParser<Course>() {
                @NonNull
                @Override
                public Course parseSnapshot(@NonNull DataSnapshot snapshot) {
                    return new Course(snapshot.child("course_title").getValue().toString(),snapshot.child("course_code").getValue().toString(),snapshot.child("course_lecturer").getValue().toString());
                }
            })
            .build();

    mFirebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Course,CourseViewHolder>(options){
        @NonNull
        @Override
        public CourseViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
            mCourseItemBinding = CourseItemBinding.inflate(LayoutInflater.from(getActivity()),parent,false);
            View view = mCourseItemBinding.getRoot();
            return new CourseViewHolder(view);
        }

        @Override
        public void onBindViewHolder(@NonNull CourseViewHolder holder,int position,Course course) {
            holder.bind(course);
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getActivity(),String.valueOf(position),Toast.LENGTH_LONG).show();
                }
            });
        }
    };

    mRecyclerView.setAdapter(mFirebaseRecyclerAdapter);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...