我想創建一個搜索過濾器,它可以從我的來自mySQL的聯繫人列表中搜索名稱或號碼。使用聯繫人姓名和號碼的搜索過濾器
我已經準備一個適配器,其中我通過接觸在數組列表:
if (books.size() > 1) {
for (int i = 0; i < books.size(); i++) {
if (i != (books.size() - 1)) {
if (!books.get(i).get("contact_name").toString().equals(books.get(i + 1).get("contact_name").toString())) {
UniqueBooks.add(books.get(i));
}
} else {
UniqueBooks.add(books.get(i));
}
}
} else {
UniqueBooks = books;
}
Books = UniqueBooks;
mStringFilterList = UniqueBooks;
和用於過濾聯繫人,我已經做了哪些搜索按名稱接觸。
private class ValueFilter extends Filter {
//Invoked in a worker thread to filter the data according to the constraint.
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if (constraint != null && constraint.length() > 0) {
ArrayList> filterList = new ArrayList>();
for (int i = 0; i < mStringFilterList.size(); i++) {
String contactNo = (String) mStringFilterList.get(i).get("contact_name");
contactNo = contactNo.toLowerCase();
constraint = (CharSequence) constraint.toString().toLowerCase();
//System.out.println("contactNo "+contactNo+ " char "+constraint);
if (contactNo.contains(constraint)) {
filterList.add(mStringFilterList.get(i));
}
}
results.count = filterList.size();
results.values = filterList;
} else {
results.count = mStringFilterList.size();
results.values = mStringFilterList;
}
return results;
}
有沒有辦法按姓名和號碼過濾聯繫人?
是的,如果(contactNo.contains(約束))到如果(contactNo.contains(約束)||(contactName.contains(約束)),希望這有助於 – Nisarg
你爲什麼不執行更改此行在內容提供具體的方法做工作,爲您和給定的選擇arguements查詢數據庫? –
是mStringFilterList靜態? –