【发布时间】:2017-07-19 03:58:45
【问题描述】:
我想在填充了来自 Firebase 数据库的数据的列表视图片段中实现 Android Searchview 功能。
获取 Firebase 数据的代码
mPOIAdapter = new FirebaseListAdapter<Poi>(
getActivity(),
Poi.class,
R.layout.item_layout_poi,
FirebaseDatabase.getInstance().getReference("poi").orderByChild("name")) {
@Override
protected void populateView(View v, Poi model, int position) {
TextView pointsText = (TextView) v.findViewById(R.id.poi_textview);
pointsText.setText(model.getName());
TextView pointDescr = (TextView) v.findViewById(R.id.poi_building);
pointDescr.setText(model.getDescription());
}
};
mPOIListView.setAdapter(mPOIAdapter);
搜索查看代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.options_menu,menu);
MenuItem item = menu.findItem(R.id.search);
item.setVisible(true);
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
return false;
}
});
}
我想使用这样的代码根据用户的输入过滤 Listview 项目
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
return false;
}
@Override
public boolean onQueryTextChange(String s) {
getListAdapter().getFilter().filter(s);
return true;
}
});
因为 FirebaseListAdapter 没有与 ListAdapter 相同的可能性,所以我不能使用 getListAdapter().getFilter().filter(s)
是否有另一种方法可以在填充有 Firebase 数据的 Listview 片段中使用搜索功能
【问题讨论】:
-
嗨布伦特,我有同样的问题。你找到解决办法了吗?如果是,请在此处更新您的答案。提前谢谢你。
标签: android firebase filter firebase-realtime-database searchview