2013-06-24 3 views
0

Я новичок в Android, у меня есть Listview с некоторыми элементами, каждый элемент содержит строку размером 20 символов (от 1-го до 16-го символа такие же). Мне нужно добавить параметр поиска в список просмотра таким образом, чтобы в зависимости от последних 4 символов должен был фильтроваться только список. Я видел много сайтов, но я не мог найти.Пользовательская фильтрация в списке Android android

например:
элементы списка: 123456789ABCD1
элементы списка: 123456789EFGH2
элементы списка: 123456789IJKL3
элементы списка: 123456789MNOP4

, если я использую

@Override 
public void afterTextChanged(Editable s) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void beforeTextChanged(CharSequence s, int start, int count, 
     int after) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) { 




    myAdapter.getFilter().filter(s.toString()); 

} 

я должен ввести
123456789A в редакторе Edittext затем в списке отображается только фильтр

Мое требование
я должен ввести AB в EditText так, что он начинает фильтровать

Я был бы признателен за ваши идеи. Заранее спасибо

+0

вы никогда не пробовали запрос с% "текста" % – AAnkit

+0

Ankit_Awasthi Sir , Я понятия не имею о «запросе с%» вашего текста «%», пожалуйста, объясните. – LMK

ответ

1

Вы можете сделать это двумя способами.

1) примените фильтр по данным массива, которые у вас есть в списке vie , используйте метод String.Contains() для этой цели.

Пример: - ListArray[i].toString.contains(SearchString); // он вернет true, если строка поиска присутствует.

2) Если вы сохраняете данные списка в базе данных Sqlite. Вы можете запустить запрос, как показано ниже

Пример: - sqliteDatabaseObj.Query(TABLE_NAME,null,COLUMN_NAME+" like %"+searchString"%",null,null);

вот другой пример этого Example of list data filtering

P.S: - Примеры я написанные синтаксически не правильно. Пожалуйста, проверьте документы и используйте их,

0

Что я думаю вам нужно сделать, так как вам сказали, string методом subString. И затем вы поместите результирующую строку для своего поискового запроса.

адресности Строка поиска

String Str = new String("123456789ABCD"); 
     int i = Str.length(); 
     System.out.print("Return Value :"); 
     System.out.println(Str.substring(10)); 

     System.out.print("Return Value :"); 
     System.out.println(Str.substring(i - 4, i)); 

Строка SEARCH_STR = Str.substring (я - 4, я);

положить "SEARCH_STR" в SQL Query

SELECT * FROM table_name WHERE код вроде '% SEARCH_STR%'