Android 如何将Firebase旧适配器方法转换为新适配器方法?
在我的应用程序的主屏幕上,我试图构建一个带有编辑文本的搜索视图。我在搜索视图下方创建了一个回收器视图。我的应用程序是一个音乐应用程序。所以我想建立一个功能,比如当用户从firebase搜索任何歌曲时,歌曲名称和歌曲艺术家应该显示在recycler视图中。所以我读了一个代码来做这个特殊的工作。但我面临的问题是,在我的代码中有一个FirebaseRecyclerAdapter方法,用于从我的搜索视图中从firebase获取值,但我的问题是它是旧的populateViewHolder方法,我想在createView和onBindViewHolderMethod上将此方法转换为新方法,但我不知道如何转换?所以,请帮助我改变这个方法,我想做同样的搜索视图工作。我不想更改gradle中的Firebase依赖项。所以最后的结论是,我想将下面给出的代码转换为新的FirebaseRecyclerAdapter方法 这是我的密码:-Android 如何将Firebase旧适配器方法转换为新适配器方法?,android,firebase,firebase-realtime-database,android-recyclerview,firebaseui,Android,Firebase,Firebase Realtime Database,Android Recyclerview,Firebaseui,在我的应用程序的主屏幕上,我试图构建一个带有编辑文本的搜索视图。我在搜索视图下方创建了一个回收器视图。我的应用程序是一个音乐应用程序。所以我想建立一个功能,比如当用户从firebase搜索任何歌曲时,歌曲名称和歌曲艺术家应该显示在recycler视图中。所以我读了一个代码来做这个特殊的工作。但我面临的问题是,在我的代码中有一个FirebaseRecyclerAdapter方法,用于从我的搜索视图中从firebase获取值,但我的问题是它是旧的populateViewHolder方法,我想在cre
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);
因此,如果您有任何解决方案,请帮助我。如图所示,首先使用以下查询和类初始化FirebaseRecyclerOptions对象:
FirebaseRecyclerOptions<Users> options =
new FirebaseRecyclerOptions.Builder<Users>()
.setQuery(firebaseSearchQuery, Users.class)
.build();
然后是您。您正在使用非常旧版本的Firebase UI库。你应该使用最新的。我尝试了你的代码,但它没有从firebase加载数据
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);