亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FirebaseUI RecycleView 搜索不起作用

FirebaseUI RecycleView 搜索不起作用

開心每一天1111 2022-06-04 16:41:50
這是我的SearchGetterSetter.java代碼:package com.me.Admin;public class SearchGetterSetter {String fname;public SearchGetterSetter(String fname) {    this.fname = fname;}public String getFname() {    return fname;}public void setFname(String fname) {    this.fname = fname;}}這是我的 SearchUserActivity.java 代碼package com.me.Admin;  import android.support.annotation.NonNull;  import android.support.v7.app.AppCompatActivity;  import android.os.Bundle;  import android.support.v7.widget.LinearLayoutManager;  import android.support.v7.widget.RecyclerView;  import android.view.LayoutInflater;  import android.view.View;  import android.view.ViewGroup;  import android.widget.EditText;  import android.widget.ImageButton;  import android.widget.TextView;  import android.widget.Toast;  import com.firebase.ui.database.FirebaseRecyclerAdapter;  import com.firebase.ui.database.FirebaseRecyclerOptions;  import com.google.firebase.FirebaseException;  import com.google.firebase.database.DatabaseReference;  import com.google.firebase.database.FirebaseDatabase;  import com.google.firebase.database.Query;  import com.infoters.killansfitnessstudio.R;  public class SearchUserActivity extends AppCompatActivity {private EditText SearchTxt;private ImageButton SearchBtn;private RecyclerView SearchRV;private DatabaseReference mUserDatabase;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_search_user);    mUserDatabase = FirebaseDatabase.getInstance().getReference("users");    SearchTxt = findViewById(R.id.SearchUserTxt);    SearchBtn = findViewById(R.id.SearchUserBtn);    SearchRV = findViewById(R.id.SearchUserRV);    SearchRV.setHasFixedSize(true);    SearchRV.setLayoutManager(new LinearLayoutManager(this));        }    });}我想從 Firebase 實時數據庫中搜索 fname。在搜索按鈕上按下我正在調用firebaseUserSearch()方法。我嘗試了幾種方法,但對我沒有任何作用。我猜我做錯了 FirebaseRecycleViewAdapter。我提到了這個。我哪里出錯了?
查看完整描述

2 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

你的這個聲明:

Query firebaseSearchQuery = mUserDatabase.child("fname");

應該

Query firebaseSearchQuery = mUserDatabase.orderByChild("fname").equals(searchText);

正如我看到您的代碼,您沒有在查詢中使用searchText變量。


查看完整回答
反對 回復 2022-06-04
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

要創建搜索功能,您需要創建一個如下所示的查詢:


DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();

DatabaseReference usersRef = rootRef.child("users");

Query query = usersRef.orderByChild("fname").equalTo(searchedText);

因此,每次搜索名稱時,都應該返回一個新的查詢對象。因此,每次您想要過濾新條件時,您都需要:


根據新搜索的文本創建一個新查詢:


Query query = usersRef.orderByChild("name").equalTo(searchedText);

將偵聽器附加到這個新創建的查詢。


使用這個新創建的查詢的結果創建一個新的適配器,或者使用notifydatasetchanged()方法更新現有的適配器。


查看完整回答
反對 回復 2022-06-04
  • 2 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號