我尝试了这段代码,但不返回输入的文本。
这是我的Addtocartitems.java:
这是我的Downloadeditems.java:
这是我的DownloadedListAdapter2.java:
该程序没有错误,但是什么也没发生。
有人可以帮我吗?提前致谢!
最佳答案
在适配器类中创建列表变量
List<DownloadedItems> downloadedItemsList= new ArrayList<>();
在您的构造函数中,请致电写下
public DownloadListAdapter(Context context, int resource, ArrayList<DownloadedItems> object){
super(context,resource,object);
this.mcontext= context;
this.mResource=resource;
this.downloadedItemsList= object;
}
在适配器中创建获取列表的方法
public void setData(List<DownloadedItems> modelList) {
this.downloadedItemsList= modelList;
notifyDataSetChanged();
}
现在,使用新的已过滤列表调用filter方法,并将该列表传递给适配器方法
private void filter(String text) {
List<DownloadedItems> filteredList = new ArrayList<DownloadedItems>();
for (DownloadedItems la :langList) {
if (la.langName.toLowerCase().startsWith(text.toLowerCase())) {
filteredList.add(la);
}
adapter.setData(filteredList);
}
}
您可以根据需要将方法.startsWith更改为.Contains。此方法返回以输入的字符串开头的项目。 langList是我已经传递给适配器呈现的初始列表。
la.langName.toLowerCase().startsWith
这是过滤器查询,我用来比较过滤器的项目。我正在从列表中搜索语言名称。因此,您可以根据需要进行修改。然后从中调用方法过滤器
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
filter(newText)
return true;
}
});
关于java - 如何在Android工具栏中使用搜索栏创建嵌套的listview?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60613837/