我在列表视图中实现了搜索,但失败得很厉害,然后从YOUTUBE视频中得到了一段和平的代码,但它在 JAVA 但我的工作是 KOTLIN当我在转换它时,我又失败了。KOTLIN 此代码 JAVA 编码
@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;
}
我失败的地方是植入了覆盖方法
这里是你得到的运行 将Koltin功能转换为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视频的链接,我会试着再看一下。