我是新手!用户,我正在尝试使用“搜索视图”过滤我的数据。过滤似乎有效,但当我删除搜索视图中的文本以键入另一个时,我只有找到的项而不是我的初始列表。
更多分析我在适配器中使用以下内容:
public void filterData(String query){
query = query.toLowerCase();
if(query.isEmpty()){
expListTitle .addAll(InitialList);
}
else {
expListTitle.clear();
for(String titles: NewexpListTitle)
{
if(titles.toLowerCase().contains(query))
{
expListTitle.add(titles);
}
}
}
notifyDataSetChanged();
}
并在适配器的构造函数中执行以下操作:
public CustomExpandableListAdapter(Context context, List<String> expListTitle, LinkedHashMap<String,ArrayList<Business>> expListDetail)
{
this.context = context;
this.expListTitle = expListTitle;
this.expListDetail = expListDetail;
this.NewexpListTitle= new ArrayList<String>();
this.NewexpListTitle.addAll(expListTitle);
this.InitialList = new ArrayList<String>();
this.InitialList.addAll(expListTitle);
}
在我的课上,我给出了以下调用FilterData方法
的内容@Override
public boolean onQueryTextChange(String query) {
listAdapter = new CustomExpandableListAdapter(getApplicationContext(), FinalListTitle, FinalMap);
listAdapter.filterData(query);
expandableListView.setAdapter(listAdapter);
return false;
}
我在setAdapter和初始化之上,因为数据来自使用volley的JSON对象
似乎当我清除SearchView时,列表中的InitialList也被清除,并且它的左侧是找到的元素。 如何同时保留我的初始列表?
谢谢
答案 0 :(得分:0)
this below code solved my issue.
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
lv_listname.clearTextFilter();
listAdapter.getFilter().filter("");
} else {
listAdapter.getFilter().filter(newText);
// ad_names.notifyDataSetChanged();
// lv_listname.setFilterText(newText);
// searchview.dismissSuggestions();
}
return true;
}
答案 1 :(得分:0)
试试这个,
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 13, column 122> mismatched input ')' expecting COLON