android - 使用 EditText Android 过滤 Json ListView

标签 android json listview arraylist

尝试用编辑文本过滤我的 ListView ,每次我输入一些文本时 ListView 都会变成空白,任何人都可以告诉我我做错了什么以及如何解决这个问题

search.addTextChangedListener(new TextWatcher (){
    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }

    public void beforeTextChanged(CharSequence arg0, int arg1,
    int arg2, int arg3) {
        // TODO Auto-generated method stub

    }

    public void onTextChanged(CharSequence cs, int arg1, int arg2,
    int arg3) {
        // TODO Auto-generated method stub



        String searchString = cs.toString();//wsSearch.getText().toString();
       /* if(searchString.length() != 2) {
            adapter2 = new Adapter(MainActivity.this, array);
            listView.setAdapter(adapter2);
            return;
        }*/
        for (int i = 0; i < array.size(); i++)
        {
            String currentString = array.get(i).getTitulo();
            if (searchString.equalsIgnoreCase(currentString))
            {
                mTemp.add(array.get(i));
            }
        }
        adapter2 = new Adapter(MainActivity.this, mTemp);
        listView.setAdapter(adapter2);

    }



});
}

最佳答案

试试这个:

    search.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
            String searchString = arg0.toString();//wsSearch.getText().toString();
   /* if(searchString.length() != 2) {
        adapter2 = new Adapter(MainActivity.this, array);
        listView.setAdapter(adapter2);
        return;
    }*/     
            mTemp.clear()
            for (int i = 0; i < array.size(); i++)
            {
                String currentString = array.get(i).getTitulo();
                if (currentString.contains(searchString))
                {
                    mTemp.add(array.get(i));
                }
            }
            adapter2 = new Adapter(MainActivity.this, mTemp);
            listView.setAdapter(adapter2);

        }

        public void beforeTextChanged(CharSequence arg0, int arg1,
                                      int arg2, int arg3) {
            // TODO Auto-generated method stub

        }

        public void onTextChanged(CharSequence cs, int arg1, int arg2,
                                  int arg3) {
            // TODO Auto-generated method stub
            //BAPTISMAL_SONG.this.adapter2.getFilter().filter(cs);




        }



    });

希望这有帮助。

关于android - 使用 EditText Android 过滤 Json ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44987990/

相关文章:

c# - 没有行时如何获取ListView的自定义消息

android - 您如何访问手机上存储的音乐的名称、艺术家、专辑名称?

java - 如何设置 Android Studio 中安装的默认项目?

java - 从 RecognizerIntent 检测语言

C# listview - 嵌入控件

Java JSON 子对象

javascript - 如何获取 JSON 数据的正确计数而不是字符长度

android - 如何将 relativelayout.setBackgroundDrawable() 与位图一起使用?

Jenkins 上的 Android 模拟器错误 : device offline

json - Select2 是否允许将 "text" key 的名称更改为其他名称?