Tôi muốn lọc listView
bằng cách sử dụng hộp EditText
và sử dụng chức năng bộ chuyển đổi getFilter()
. Nó hoạt động tốt cho đến khi tôi đặt một ký tự khoảng trắng trong hộp văn bản.Bộ lọc cho android ListView - Space Character
Chỉnh sửa: Đó là một SimpleAdapter không ArrayAdapter
Nếu danh sách của tôi chứa những lời này: { "Apple", "chuối", "Red Apple"} Nếu tôi gõ "quả táo" nó sẽ trở lại tất cả các các mục có chứa từ táo trong đó (Apple và Red Apple). Nếu tôi nhập "quả táo", nó sẽ không trả lại bất cứ thứ gì.
Bất kỳ ý tưởng nào? Dưới đây là các mã:
searchBox = (EditText) findViewById(R.id.searchBox);
searchBox.addTextChangedListener(filterTextWatcher);
và
private TextWatcher filterTextWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
myAdapter.getFilter().filter(s.toString());
}
};
Bạn đã bao giờ tìm ra điều này chưa? –
Tôi không xin lỗi. Tôi nghĩ rằng giải pháp có thể là để làm cho bộ chuyển đổi của riêng bạn dựa trên một ArrayAdapter nhưng tôi đã không cố gắng (ngừng làm việc trên dự án đó). – Chris911
@CaptainProg Bạn đang tìm kiếm loại câu trả lời nào? Với câu hỏi ban đầu được đặt ra bằng cách sử dụng 'trim()' là câu trả lời hay nhất. – Sam