Android добавить пользовательскую панель поиска в приложении - PullRequest
1 голос
/ 13 января 2012

Я хочу реализовать панель поиска в моем приложении, которая будет фильтровать представление списка в зависимости от букв, введенных в редактируемый текст.Вот что у меня есть на самом деле, как дизайн

enter image description here

Итак, я хочу отфильтровать элементы по названию, поэтому я думаю, что мне нужно изменить оператор sqlite, потому что я заполняюпросмотр списка из базы данных.

И у меня есть два вопроса:

1.Каким образом лучше всего реализовать пользовательскую панель поиска: добавьте textwatcher в текст редактирования и изменяйте оператор sqlite каждый раз, когда пользователь вводит букву или?

2.Как сортировать в sqlite в зависимости от введенных пользователем писем.Если пользователь нажимает AI, он хочет показать все элементы с этой буквой, независимо от того, находится она в начале или в конце.

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Таким образом, для достижения этой цели очень просто, независимо от того, какой Adapter вы используете. Сначала вам нужно создать TextWatcher и добавить его к вашему Edit Text. Чем в вашем onAfterTextChanged() вы можете создать новый оператор SQL, например:

String sql = "SELECT title FROM cards WHERE title LIKE '%"+someString+"%'"
//where someString is `Charsequence` which you get in your onAfterTextChanged()

Прежде чем снова получить ваши данные, если вы используете ArrayList или любой другой тип Lists для хранения своих данных, вам необходимо очистить их, чтобы вы могли получить новые данные. И чем вы можете просто позвонить adapter.notifySetDataChanged(). И это должно работать. По крайней мере, так я это делаю. Может быть, это не самый лучший способ, но он работает.

0 голосов
/ 13 января 2012

Каков размер вашей базы данных?если это не БОЛЬШОЙ, то я думаю, что простой SQL должен работать для вас:

SELECT  Column1, Column2
FROM    myTable
WHERE   myColumn LIKE 'somecharacter%'

Вы можете вызывать БД, пока пользователь печатает, или использовать другую логику, например, когда пользователь нажимает определенную клавишу.кнопка.

...