java - 在 ListView 中实现搜索功能时出错

标签 java android android-studio kotlin kotlin-android-extensions

我在 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/

相关文章:

android - 有没有办法使用同一个库的两个不同版本,所以android中的文件

android - 为什么 fopen thown errno :22 when I use the file name with colon in Android?

java - android studio 接受导入内部类吗?

java - 通过反射调用带有参数的方法

android - Volley 向服务器发送空参数

带有警告的 Android Studio 构建版本找不到引用的类

java - 如何在 Android Studio 中保持方法折叠?

java - 在用户输入正确的格式后,如何使扫描仪可重复多次

java - 两个字符生成随机序列

java - 相同属性的@NotNull 和@NotEmpty