我在 ListView 中实现搜索,但失败严重,然后从 YOUTUBE 视频引用中获取了一段代码,但它是在 JAVA 中,但我正在使用 KOTLIN>.
当我转换它时,我再次失败了。你能帮我用这个JAVA代码的KOTLIN代码
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if(constraint == null || constraint.length() == 0){
filterResults.count = countryModelsList.size();
filterResults.values = countryModelsList;
}else{
List<CountryModel> resultsModel = new ArrayList<>();
String searchStr = constraint.toString().toLowerCase();
for(CountryModel itemsModel:countryModelsList){
if(itemsModel.getCountry().toLowerCase().contains(searchStr)){
resultsModel.add(itemsModel);
}
filterResults.count = resultsModel.size();
filterResults.values = resultsModel;
}
}
return filterResults;
}
我失败的地方是实现重写方法
最佳答案
这是运行 convert to Koltin functionality built into android studio 得到的结果.
val filter: Filter
get() {
val filter: Filter = object : Filter() {
protected fun performFiltering(constraint: CharSequence?): FilterResults {
val filterResults = FilterResults()
if (constraint == null || constraint.length == 0) {
filterResults.count = countryModelsList.size()
filterResults.values = countryModelsList
} else {
val resultsModel: List<CountryModel> = ArrayList<Any>()
val searchStr = constraint.toString().toLowerCase()
for (itemsModel in countryModelsList) {
if (itemsModel.getCountry().toLowerCase().contains(searchStr)) {
resultsModel.add(itemsModel)
}
filterResults.count = resultsModel.size()
filterResults.values = resultsModel
}
}
return filterResults
}
}
}
如果这不起作用,请随时回复您的更多代码或 YouTube 视频的链接,我会尝试再看一下。
关于java - 在 ListView 中实现搜索功能时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61839508/