如何将 Firebase 旧适配器方法转换为新适配器方法?

How to convert Firebase Old Adapter method to New Adapter method?

在我的应用程序的主屏幕中,我试图构建一个带有编辑文本的搜索视图。我在搜索视图下方制作了一个回收站视图。我的应用程序是一个音乐应用程序。所以我想构建一个功能,比如当用户从 firebase 搜索任何歌曲时,歌曲名称和歌曲艺术家应该显示在回收站视图中。所以我已经阅读了执行此特定工作的代码。但是我遇到了一个问题,比如在我的代码中有一个 FirebaseRecyclerAdapter 方法用于从我的搜索视图中获取 firebase 的值,但我的问题是它是旧的 populateViewHolder 方法,我想将此方法转换为新方法在 createViewonBindViewHolderMethod 但我不知道怎么办?所以请帮我改变这个方法,我想做同样的搜索视图工作。我不想更改 gradle 中的 Firebase 依赖项。所以最后的结论是我想将下面给出的代码转换为新的 FirebaseRecyclerAdapter 方法。

这是我的代码:-

 Query firebaseSearchQuery = mUserDatabase.orderByChild("name").startAt(searchText).endAt(searchText + "\uf8ff");

        FirebaseRecyclerAdapter<Users, UsersViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(

                Users.class,
                R.layout.list_layout,
                UsersViewHolder.class,
                firebaseSearchQuery

        ) {
            @Override
            protected void populateViewHolder(UsersViewHolder viewHolder, Users model, int position) {


                viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());

            }
        };

        mResultList.setAdapter(firebaseRecyclerAdapter);

所以如果你有任何解决办法,请帮助我。

FirebaseUI documentation 所示,您首先使用查询和 class:

初始化一个 FirebaseRecyclerOptions 对象
FirebaseRecyclerOptions<Users> options =
        new FirebaseRecyclerOptions.Builder<Users>()
                .setQuery(firebaseSearchQuery, Users.class)
                .build();

然后您使用 options 对象和您的 ViewHolder class:

创建一个 FirebaseRecyclerAdapter
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(options) {
    @Override
    public ChatHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list_layout, parent, false);

        return new UsersViewHolder(view);
    }

    @Override
    protected void onBindViewHolder(UsersViewHolder holder, int position, Users model) {
        viewHolder.setDetails(getApplicationContext(), model.getName(), model.getStatus(), model.getImage());
    }
};
mResultList.setAdapter(firebaseRecyclerAdapter);

然后你call startListening() and stopListening() in the relevant activity lifecycle events.