私の問題を単純化するために、私はFirebusデータベースに "ビジネス"ノードがあり、ビジネスノードにはその特定のビジネスに関するIDと対応するデータを持つ子があります。私は自分の火災ベースのRecycler Viewにすべての事業を表示したくない、特定のもののみを表示する。私がいつでも見たいものについては、私はIDのリストを持っています。私はこのコードを実行した場合Firebase RecyclerViewには、特定のキーのリストと一致するキーを持つ項目のみを設定しますか?
...
List<String> businessList = ("00002", "00004", "00021");
...
private void setUpFirebaseAdapter() {
mFirebaseAdapter = new FirebaseRecyclerAdapter<User, FirebaseBusinessViewHolder>
(User.class, R.layout.business_list_item, FirebaseBusinessViewHolder.class, mBusinessReference{
@Override
protected void populateViewHolder(FirebaseBusinessViewHolder viewHolder, User model, int position){
for (String businessID : businessList) {
if (businessID.equals(model.getId())){
//show this item
viewHolder.bindBusiness(model, true);
}
if(!businessID.equals(model.getId())){
//don't show this item
}
}
}
};
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mFirebaseAdapter);
}
は、それだけbusinessListからのデータが表示されますが、それが作成するとして、それはまた、そのID businessListではなかったデータベースに格納されている他の項目のための空きスペースを残し空のリスト項目はデータをバインドしません。私は明らかに不要なアイテムのためにギャップ/空きスペースを表示したくありません。リストアダプター/ビューホルダーを調整して、希望のアイテムのみを表示するにはどうすればよいですか?