我使用的是addTextChangedListener(.)若要使用数组中的筛选器获得匹配的字符串,请执行以下操作。我可以很容易地过滤匹配的字符串,但是,如果输入的字符串与数组列表记录不匹配,则显示未找到的记录。
这是我的addTextChangedListener()方法
etserach.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String st = etserach.getText().toString();
if (!s.equals("") && s.length() > 0) {
adapter_filter.filter(st);
} else {
adapter_filter.filter(st);
}
}
}
这是适配器中的filter()方法。
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
resultArrayshort.clear();
if (charText.length() == 0) {
resultArrayshort.addAll(citylistNew);
} else {
for (int i = 0; i < citylistNew.size(); i++) {
String fullname = citylistNew.get(i).getClientNameE();
if (fullname.toLowerCase(Locale.getDefault()).contains(charText)) {
resultArrayshort.add(citylistNew.get(i));
}
/* else{
Toast.makeText(mContext,"Record not found",Toast.LENGTH_SHORT).show();
} */
}
}
notifyDataSetChanged();
}
发布于 2017-10-05 01:57:11
Hi @nidhi后循环检查resultArray的大小,如果它是空的,然后显示吐司
发布于 2017-10-05 01:55:03
在通知数据集更改后,检查resultArrayshort的大小是否为空,然后显示吐司
if(resultArrayshort.isEmpty()){
//show toast
}
https://stackoverflow.com/questions/46582653
复制