5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
||||||||||||||||
1 | ||||||||||||||||
Что я неправильно делаю при реализации поиска?21.10.2014, 14:51. Показов 1843. Ответов 15
Метки нет (Все метки)
Мучаюсь уже второй день. Подскажите что не так. Задача сделать поиск в справочнике. Все делаю по гайду - прописываю в манифесте, что текущая активити -это searchable activity, далее в коде вызываю Intent, с которого получаю запрос. Далее в классе которые обрабатывает базу данных пишу запрос с LIKE что бы извлечь все подходящие запросы. Проблема как я понял в методе
Подскажите как сделать правильно, сил уже нет... p.s. В качестве searchable activity используется текущая MainActivity (правильно ли это?):
10-21 13:50:03.697: E/AndroidRuntime(12899): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.citycode/com.example.citycode.MainActivity}: java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters.
0
|
21.10.2014, 14:51 | |
Ответы с готовыми решениями:
15
Что я делаю неправильно? Что я неправильно делаю? что делаю неправильно? Что я неправильно делаю с SED? |
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
22.10.2014, 12:03 | 2 |
Сколько cursor1.getCount()?
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|||||||||||||||||||||
22.10.2014, 18:02 [ТС] | 3 | ||||||||||||||||||||
Была ошибка в запросе, вы правы. Поменял на
Но все равно приложение не работает. Сейчас выдает ошибку: 10-22 12:10:00.905: E/AndroidRuntime(10353): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.citycode/com.example.citycode.MainActivity}: java.lang.NullPointerException Что то не так видимо с реализацией Search... А что - без понятия... Очень нужна помощь. Добавлено через 1 час 17 минут Кстати, прописал логи после каждого действия, ошибка как я понял вылазит на этапе -
Т.е. до обновления адаптера лог записывыыется, после уже нет... Может нельзя так обновлять адаптер? В чем тут дело может быть.... Добавлено через 3 часа 32 минуты Продолжаю общаться сам с собой))) От помощи все еще не откажусь Получилось запустить код, но поиск работает на правильно, т.е. не выдает то что нужно, а весь список. Хотя в лог из Cursor записывается что нужно, т.е. запрос работает. Вот код:
Но как я говорил, поиск все равно работает неправильно, хотя с помощью метода logCursor в лог идут как раз правильные данные.
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
23.10.2014, 09:22 | 4 |
Попробуйте использовать changeCursor(cursor) или notifyDataSetChanged().
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
23.10.2014, 12:34 [ТС] | 5 |
Эти методы не работают в это проекте...
0
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
||||||
23.10.2014, 12:56 | 6 | |||||
yourfanat, тоже недавно мучался с поиском, в итоге забил и на SimpleCursorAdapter (вроде, он устарел, а люди продолжают его использовать), и на SearchActivity. Пока что, к сожалению, научился только при каждом поиске заново заполнять ListView.
Вместо этого использую другой код.
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
23.10.2014, 13:17 [ТС] | 7 |
А как его применить к моему проекту?))) Я пока только по гайдам могу кодить, с небольшим вкладом от себя)))
Мне все таки интересно, почему в своем коде я могу вывести правльный результат поиска в лог, с помощью метода logCursor. А вот если данные теже начинаю назначать адаптеру, и применять его к ListView - выводится весь полный список.. Ну вот где то же зарыта собака
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
23.10.2014, 13:45 | 8 |
Как т.е не работают? Это методы SimpleCursorAdapter, который у вас scAdapter.
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
23.10.2014, 14:02 [ТС] | 9 |
Добавляю после назначения курсора - cursor1 = db.fetchRecordsByQuery(query);
метод changeCursor(cursor1); Пишет что: the method is undefined for the type MainActivity....
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
23.10.2014, 14:13 [ТС] | 10 |
Добавляю весь проект. Посмотрите пожалуйста, может я где то что то упустил... Ваш метод закоментил, что б проект запускался....
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
23.10.2014, 19:17 [ТС] | 11 |
Попробовал добавить в проект над главным Listview - другой Listview - так вот туда выводяться результаты. За ним идет общий список. Может быть есть метод как выводить результаты в главный Listview?
Добавлено через 11 минут Я так понял к моему Listview прикрпепился адаптер) От него нужно как то избавится, что бы можно было назначить другой Вопрос как это сделать ? Добавлено через 1 час 14 минут >Попробуйте использовать changeCursor(cursor) или notifyDataSetChanged(). Пробовал - не получилось
0
|
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
|
|
24.10.2014, 07:56 | 12 |
Вы рано добавляете, я писал, что
scAdapter/records инициализируется у вас после назначения курсора, сл-но надо писать после 64 строки.
0
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
24.10.2014, 15:59 [ТС] | 13 |
Решил проблему добавлением return; в метод Oncreate сразу после вызова doMySearch метода. Более детально опишу на блоге, и дам ссылку, может будет интересно кому то)
1
|
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
|
|
30.10.2014, 16:10 [ТС] | 15 |
Как и обещал выкладываю подробный пост по реализации поиска в Android. Если будут какие то замечания, просьба написать тут или лучше в коментах. Ссылка: http://yourfanat.com/android/s... ya-poiska/
1
|
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
|
|
31.10.2014, 16:22 | 16 |
yourfanat, молодец, что добил задачу.
Недавно у меня стояла такая же задача, но требовалось: 1) делать поиск во фрагментах, 2) на одних экранах показывать поиск, на других - нет, 3) по-другому оформить поисковую строку. В куче тьюториалов об этом не сказано. Пришлось долго копаться. SearchActivity в итоге я не использовал за ненадобностью. Кроме того, выяснилось, что без ActionBarActivity задачу реализовать сложно, поэтому так и оставил public class MainActivity extends ActionBarActivity.
0
|
31.10.2014, 16:22 | |
31.10.2014, 16:22 | |
Помогаю со студенческими работами здесь
16
Что я неправильно делаю с созданием классса? Подружить __autoload и namespace – что я делаю неправильно? Запросы неправильно считают. Что делаю не так? Мне нужно копировать таблицу с данными в БД Access C++. Что я делаю неправильно? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |