尝试用编辑文本过滤我的 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/