android - 使用 FirebaseRecyclerAdapter 的 Firebase 搜索实现
问题描述
我对 FirebaseRecyclerAdapter 的想法非常陌生,因此有一个非常基本的问题要问。我正在使用此代码制作一个应用程序,用户可以在其中输入他们的专业/服务。然后我希望在他们使用他们的职业名称进行搜索时显示他们的个人资料。这是我正在使用的代码:
private TextInputLayout searchServicees;
private Button searchBtn;
private RecyclerView serviceesList;
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
searchServicees=findViewById(R.id.searchServicees);
searchBtn=findViewById(R.id.searchBtn);
serviceesList=findViewById(R.id.serviceesList);
serviceesList.setHasFixedSize(true);
serviceesList.setLayoutManager(new LinearLayoutManager(this));
databaseReference=FirebaseDatabase.getInstance().getReference("User");
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String searchTxt=searchServicees.getEditText().getText().toString();
firebaseSearch(searchTxt);
}
});
}
private void firebaseSearch(String search)
{
Query firebaseQuery=databaseReference.orderByChild("service_Offered").startAt(search).endAt(search+"\uf8ff");
FirebaseRecyclerAdapter<UserSearch,UsersViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<UserSearch, UsersViewHolder>(
UserSearch.class,R.layout.list_layout,UsersViewHolder.class,firebaseQuery)
{
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull UserSearch model) {
holder.setDetails(model.getCost_inDollars(),model.getDescription_Of_Service(),model.getName(),model.getService_Offered());
}
@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_layout,viewGroup,false);
return new UsersViewHolder(view);
}
};
serviceesList.setAdapter(firebaseRecyclerAdapter);
}
public static class UsersViewHolder extends RecyclerView.ViewHolder
{
View mView;
public UsersViewHolder(@NonNull View itemView)
{
super(itemView);
mView=itemView;
}
public void setDetails(String userCost,String userDes,String userName,String userService)
{
TextView name=mView.findViewById(R.id.searchName);
TextView service=mView.findViewById(R.id.searchService);
TextView des=mView.findViewById(R.id.searchDes);
TextView cost=mView.findViewById(R.id.searchCost);
name.setText(userName);
service.setText(userService);
des.setText(userDes);
cost.setText(userCost);
}
}
现在在 FirebaseRecyclerAdapter firebaseRecyclerAdapter=new FirebaseRecyclerAdapter(UserSearch.class,R.layout.list_layout,UsersViewHolder.class,firebaseQuery) 部分显示以下错误:
FirebaseRecyclerAdapter 中的 FirebaseRecyclerAdapter() 不能应用于:
预期参数:选项:com...com.example.servicees.UserSearch>
实际参数:
com...com.example.servicees.UserSearch> UserSearch.class (java...com.example.servicees.UserSearch>)
R.layout.list_layout (int)
UsersViewHolder.class (java...SearchActivity.UsersViewHolder>)
firebaseQuery (com.google.firebase.database.Query)
谁能告诉我我在哪里做错了?
解决方案
推荐阅读
- c++ - union(sum type)如何影响struct(product type)?在包含 union 之后,那会是一种产品类型吗?
- javascript - 在 mongodb 中是否类似于 php 中为安全而准备的语句?
- python - 防止无限回调循环使用存在 `dcc.Interval` 和 `dcc.Location`(即多页应用程序)组件的 Gunicorn 部署 Dash 应用程序
- postgresql - 无法附加或挂载卷:未挂载的卷=[数据],未附加的卷=[dshm 数据]:等待条件超时
- css - 如何在tailwindcss中将图像居中于另一个图像
- google-maps-api-3 - KML 地标图标在 Google 地球中的锚点与在 Google 地图中加载时不同,为什么?
- postgresql - 获取不同子组中的值计数
- go - fmt.Scanf 或 fmt.Scanln 未采用输入
- flutter - 如何在本地运行flutter web build
- swift - SwiftUI 从 Firebase 读取数据到视图和函数