Riteshシャルマ:
私は、検索バーに私のプログラムを表示製品のすべてではなく、私は、検索をいくつかのテキストを入力するとき。私は「S」と入力すると、私の検索バーで、それはそれだけで自分の名前が始まるとか含まれている「S」の製品を表示する必要があるとしたが、それは単に製品のすべてが表示されます。私は、コードと間違っていただきました!を把握することはできません。だから、助けてください。
これは私がRecyclerAdapterを使って自分のデータを取得し、その後「UserViewHolder」クラスにそれらを渡しています私の関数です。ここで私はfirebaseSearchQueryと子どものpname」の「orderbychild」を使って、自分のデータをソートしようとしています。
Firebaseデータベース。
private void firebaseUserSearch(String searchText){
Query firebaseSearchQuery = ProductRef.orderByChild("pname").startAt(searchText).endAt(searchText
+ "\uf8ff");
FirebaseRecyclerOptions<Products> options = new FirebaseRecyclerOptions.Builder<Products>()
.setQuery(ProductRef,Products.class).build();
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Products, UsersViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull
Products model) {
holder.setDetails(getApplicationContext(), model.getPname(), model.getPprice(),
model.getPmrp(), model.getPcondition(), model.getPimage());
}
@NonNull
@Override
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view =
LayoutInflater.from(parent.getContext()).inflate(R.layout.buy_now_phones,parent,false);
return new UsersViewHolder(view);
}
};
recyclerView.setAdapter(firebaseRecyclerAdapter);
firebaseRecyclerAdapter.startListening();
}
UserViewHolder
public static class UsersViewHolder extends RecyclerView.ViewHolder{
View mView;
public UsersViewHolder(@NonNull View itemView) {
super(itemView);
mView = itemView;
}
public void setDetails(Context context, String phoneName, String phonePrice, String phoneMrp, String phoneCondition, String phoneImage){
TextView phone_name = (TextView) mView.findViewById(R.id.product_name);
TextView phone_price = (TextView) mView.findViewById(R.id.product_price);
TextView phone_mrp = (TextView) mView.findViewById(R.id.product_mrp);
TextView phone_condition = (TextView) mView.findViewById(R.id.product_condition);
ImageView phone_image = (ImageView)mView.findViewById(R.id.product_image);
phone_name.setText(phoneName);
phone_price.setText(phonePrice);
phone_mrp.setText(phoneMrp);
phone_condition.setText(phoneCondition);
Picasso.with(context).load(phoneImage).into(phone_image);
}
}
ピーター・ハダッド:
これを変える:
FirebaseRecyclerOptions<Products> options = new FirebaseRecyclerOptions.Builder<Products>()
.setQuery(ProductRef,Products.class).build();
この中:
FirebaseRecyclerOptions<Products> options = new FirebaseRecyclerOptions.Builder<Products>()
.setQuery(firebaseSearchQuery,Products.class).build();
クエリを使用firebaseSearchQuery
してsetQuery()
方法