gpt4 book ai didi

android - 更新 Firebase Recyclerview 适配器不会删除以前的列表

转载 作者:行者123 更新时间:2023-11-29 02:38:06 24 4
gpt4 key购买 nike

我正在构建监控加密货币的应用程序,我正在使用 firebase UI,并且一切正常,直到我尝试更新适配器(Firebase 不支持客户端过滤)并且我正在添加“搜索”功能。我正在获取更新后的值,但我的数据移动到之前的 recyclerview 列表下方(哪些变得不可见,但占用空间)。我想我缺少某种“清除 recyclerview”功能。顺便提一句。我在 fragment 中使用它。请帮忙。

提前致谢。

    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);
}

enter image description here

enter image description here

最佳答案

每次添加文本时,您都在设置适配器。在 oncreate 中移动适配器初始化,然后仅在文本更改时更新 firebase 查询。

如果您只想从数据库加载新数据到回收器 View ,请清除包含适配器数据的列表并调用,然后添加新数据并调用notify dataset changed

关于android - 更新 Firebase Recyclerview 适配器不会删除以前的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45884531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com