問題FirebaseRecyclerAdapter - 作成後にデータベースクエリを変更する方法を
私はFirebaseRecyclerAdapterを通じてアンドロイドに表示される項目のリストを持っています。私はアイテムのすべてのリストにデータベース参照を使ってこのアダプタを作成します( "posts"としましょう)。投稿にはカテゴリも表示され、ユーザがカテゴリをクリックすると、そのカテゴリのアイテムのみを表示するようにリストを更新したいと思います。私は「カテゴリ」のTextViewとするとき、その上にユーザーがクリックは、私は新しいデータベースクエリを使用して新しいアダプタをインスタンス化しようとしたが、そうでないのクリックリスナを入れ 動作しないことを試みた
ソリューション作業。
その他のアイデア: は特殊なアダプタの外にそれを実行します。 がフラグメントを再起動し、新しいクエリを使用して新しいアダプタを作成するために、新しいテントを作成
は、誰かが上で同じような状況に対処しました質問ユーザーがアドパターによって取り出されたアイテムの元のリストをフィルタリングしたいのですか? 最適なソリューションは何ですか?
詳細
protected void populateViewHolder(final PostViewHolder viewHolder, final Post post, final int position) {
/* Set the post text, author and category */
viewHolder.postText.setText(post.getText());
viewHolder.postAuthor.setText(post.getAuthor());
viewHolder.postCategory.setText(post.getCategory());
/* Set a listener on category so that
I refresh data with only that category */
viewHolder.quoteCategory.setOnClickListener(new View.OnClickListener() {
Post selectedPost = getItem(position);
@Override
public void onClick(View v) {
String category = selectedPost.getCategory();
// !!!! NOW I HAVE TO CHANGE DATA SET !!! ///
私は今、私が正しいDbを参照して新しいアダプタを使用して新しいフラグメントを作成することができると思う...しかし、これが最善の方法ですか? 別のクエリを渡して、同じAdapaterをPopulateビュー内で使用する方法はありますか?
回答をありがとうございますが、問題はデータセットの変更を通知することではありません...問題は、データセットを変更した後に、すでにそのアドパートが作成されていることです。 "データセットを変更した後、" ...どうすればいいですか? – DavideN