私は暗号化通貨を監視しているファイリングベースのUIを使用していますが、アダプタをアップデートしようとするまでFirebase UIを使用していて、すべてうまくいきました(Firebase doesntサポートクライアント側フィルタリング) 「検索」機能が追加されました。私は更新された値を取得していますが、私のデータは以前のリサイクルビューのリストの下に移動します(どちらが目に見えなくなりますが、スペースが必要です)。私はある種の "clear recyclerview"機能が不足していると思う。 BTW。私はこれを断片で使用しています。助けてください。Firebaseを更新するRecyclerviewAdapterは前のリストを削除しません
ありがとうございます。
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu,menu);
MenuItem item = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView)item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Log.i(TAG,newText);
Query ref1 = FirebaseRef.getDatabase().child("Coins");
mAdapter = new FirebaseRecyclerAdapter<Coins, CoinsViewHolder>(Coins.class, R.layout.coins_card, CoinsViewHolder.class,
ref1.orderByChild("short").startAt(newText).endAt("~").limitToFirst(3)) {
@Override
public void populateViewHolder(CoinsViewHolder coinsViewHolder, Coins coinsData, int position) {
if(coinsData.getName() != null){
coinsViewHolder.setmNameTextView(coinsData.getName());
}
if(coinsData.getPrice() != null) {
coinsViewHolder.setmPriceTextView(coinsData.getPrice());
} else if(coinsData.getCap24hrChange() != null){
coinsViewHolder.setmPercentChangeTextView(coinsData.getCap24hrChange());}
coinsViewHolder.bind(coinsData);
}
};
mRecyclerView.addItemDecoration(new MaterialViewPagerHeaderDecorator());
mRecyclerView.setAdapter(mAdapter);
MaterialViewPagerHelper.registerRecyclerView(getActivity(), mRecyclerView);
return true;
}
});
super.onCreateOptionsMenu(menu,inflater);
}
お返事ありがとうございましたが、OnCreateにある間にonCreateOptionsMenuからクエリを更新する方法を共有できますか? :) –
あなたのユースケースでは、FirebaseUIリサイクラアダプタを直接使用することはできません。なぜなら、クエリを継続的に変更する必要があるため、独自のリサイクラアダプタを使用する必要があるからです。 UIアダプターは、リサーチ担当者 –
で公開されている変更点をチャットアプリなどのユースケースに適しています。パブリックリファレンスインスタンスを作成してアダプタをonCreateに移動しましたが、ref1値を変更するとアダプタは変更されません。だからFirebaseのアダプターを使うのをやめなければならないのですか? :/ –