Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.64
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
#1

SearchView или своя реализация поиска (UI) - Программирование Android

01.07.2013, 20:24. Просмотров 6362. Ответов 32
Метки нет (Все метки)

Требуется реализовать интерфейс для поиска. В ActionBar имеется SearchView, который отправляет запрос на сервер, после этого приходит ответ, который нужно отобразить в этой-же Activity и дать возможность выбрать нужный.

Основные проблемные моменты это:
-возможность вывести результат только в части экрана под строкой поиска
-закрывать поиск по клику вне зоны поиска и результатов

Пытался реализовать стандартным способом, но там приходится подключать базу данных, добавлять кучу непонятных фич.
Если выводить в обычном ListView, то нет возможности нормально отлавливать клики, попадает или нет в область списка.
PopupWindow не поддается нормальной разметке. Размеры можно указать только в цифрах с неизвестными величинами, в результате на разных экранах выглядит криво. При чем если параметр focusable = true, то блокируются посторонние элементы интерфейса, а если false то не обрабатывается клик по итемам.

Я в ступоре, нужна помощь. Пример моей реализации ниже, нужно что-то подобное
0
Миниатюры
SearchView или своя реализация поиска (UI)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 20:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SearchView или своя реализация поиска (UI) (Программирование Android):

Реализация поиска в приложении - Программирование Android
Есть страница на которой можно найти статью, но все статьи находятся на сервере. Как лучше реализовать связь между приложением и сервером?

Searchview в toolbar - Программирование Android
Доброго времени суток уважаемые форумчане. Нужна Ваша помощь в реализации поиска. Есть несколько фрагментов, и searchview в toolbar-е...

SearchView в ActionBar - Программирование Android
Всем привет! Добавил в ActionBar фрагмента SearchView, но он не появляется, пустой ActionBar. С добавлением SearchView в ActionBar активити...

SearchView ругается на Listener? - Программирование Android
Добрый день! подскажите что ему не нравится: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate...

Спрятать SearchView в некоторых фрагментах - Программирование Android
Всем привет, такой вопрос: Есть NavigationDrawer В одном фрагменте реализован viewPager , там 2 фрагмента и в каждом searchView в...

Поиск в ListView с помощью SearchView - Программирование Android
Прикручиваю SearchView, чтобы фильтровать ListView: MenuItem ourSearchItem = menu.findItem(R.id.menu_item_search); ...

32
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.07.2013, 23:37 #16
даже не знаю.
а разве он не закрывается? не проверял SearchView но есть пример с AutoCompleteTextView и в нем попап сам прячется при клике за его пределами.
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
01.07.2013, 23:39  [ТС] #17
Цитата Сообщение от V0v1k Посмотреть сообщение
даже не знаю.
а разве он не закрывается? не проверял SearchView но есть пример с AutoCompleteTextView и в нем попап сам прячется при клике за его пределами.
Сама строка поиска остается открытой. Прячется только список. Поэтому хочу отдельно обработать клик, что бы закрывать
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
01.07.2013, 23:53 #18
даже не знаю что посоветовать, не знаю как захватить экшен бар, но все остальное можно перекрыть невидимой View и отлавливать по нему тачи или экстенднуть рутовый лаяут и в нем перехватывать тачи.

кстати, строка поиска прячется при нажатии хардварного бека или бек иконки в экшен баре.
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 15:42  [ТС] #19
По ходу появился вопрос. Как вывести результаты поиска, как только его открыли. Т.е. что бы не вводя ни одного символа пользователь уже видел результаты.
Так же нужно что бы поиск начинался с первого символа, а у меня результаты выводятся только после второго

Добавлено через 17 минут
И еще. Как получить выбранный элемент из списка
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 15:51 #20
Цитата Сообщение от MonStar Посмотреть сообщение
И еще. Как получить выбранный элемент из списка
setOnSuggestionListener вроде - http://developer.android.com/reference/android/widget/SearchView.html

Добавлено через 48 секунд
Цитата Сообщение от MonStar Посмотреть сообщение
Как вывести результаты поиска, как только его открыли. Т.е. что бы не вводя ни одного символа пользователь уже видел результаты.
Так же нужно что бы поиск начинался с первого символа, а у меня результаты выводятся только после второго
хз, это стандартное поведение. каким может быть результат поиска если юзер ничего не ввел?
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 15:53  [ТС] #21
Цитата Сообщение от V0v1k Посмотреть сообщение
каким может быть результат поиска если юзер ничего не ввел?
У меня есть несколько статических результатов, которые должны показываться до начала поиска.
Или второй вариант, когда хранится выбор пользователя от предыдущих запросов и их нужно отобразить до начала поиска
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 15:54 #22
попробуйте поискать по выше приведенной ссылке.
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 16:39  [ТС] #23
Цитата Сообщение от V0v1k Посмотреть сообщение
попробуйте поискать по выше приведенной ссылке.
К сожалению там нет ничего практически, связанного с результатами поиска

Добавлено через 30 минут
В Play Маркет такая функция реализована. Когда открывается поиск все старые запросы видны в списке внизу. Нужна такая же штуковина
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 22:58 #24
посмотрите
Java
1
setOnQueryTextFocusChangeListener(View.OnFocusChangeListener listener);
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 23:08  [ТС] #25
Цитата Сообщение от V0v1k Посмотреть сообщение
посмотрите
Java
1
setOnQueryTextFocusChangeListener(View.OnFocusChangeListener listener);
Не совсем понимаю зачем мне может это пригодиться
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 23:12 #26
чтобы выводить попап когда пользователь еще ничего не ввел.
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 23:21  [ТС] #27
Цитата Сообщение от V0v1k Посмотреть сообщение
чтобы выводить попап когда пользователь еще ничего не ввел.
Это же Listener, какой от него толк, если я могу из него что-то получить, но ничего не могу установить, что бы появился список. Да ещё и в данном случае совершенно не понятно зачем именно его использовать. Он не дает мне ничего совершенно
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 23:32 #28
накопал такое
выше вы приводили ссылку http://developer.android.com/guide/t...ggestions.html
так вот, в ней используется searchable, а в нем можно задать android:searchSuggestThreshold="0", где 0 это количество символов при которых появляется этот попап.
не знаю поможет ли это чем-то, просто делюсь тем, что накопал.

Добавлено через 10 минут
и в AutoCompleteTextView есть такая штука, а в SearchView почему-то нет.
0
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
02.07.2013, 23:36  [ТС] #29
Цитата Сообщение от V0v1k Посмотреть сообщение
накопал такое
выше вы приводили ссылку http://developer.android.com/guide/t...ggestions.html
так вот, в ней используется searchable, а в нем можно задать android:searchSuggestThreshold="0", где 0 это количество символов при которых появляется этот попап.
не знаю поможет ли это чем-то, просто делюсь тем, что накопал.

Добавлено через 10 минут
и в AutoCompleteTextView есть такая штука, а в SearchView почему-то нет.
Не уверен, что смогу подключить searchable.xml к моему SearchView. У меня совершенно не такая реализация
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
02.07.2013, 23:37 #30
еще накопал такой код
Java
1
2
3
4
5
6
7
8
9
10
11
12
_searchView.setOnQueryTextFocusChangeListener(new OnFocusChangeListener()
        {
        @Override
        public void onFocusChange(View v, boolean hasFocus)
            {
            if (!hasFocus)
                return;
 
            String query = _searchView.getQuery().toString();
            _searchView.setQuery(query, false);
            }
        });
попробуйте что он дает.
0
02.07.2013, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2013, 23:37
Привет! Вот еще темы с ответами:

Отследить закрытие SearchView Android - Программирование Android
Подскажите пожалуйста, как отследить закрытие SearchView, производится нажатием на стрелку.Но отследить это нажатие не получается,...

Передать SearchView из активити во фрагмент - Программирование Android
У меня есть SearchView в активити и тесть фрагмент который запускается через транзакцию. И как мне правильно передать SearchView из...

SearchView как выводить текст ничего не найдено - Программирование Android
Есть поиск по RV/ в поиске не силен сделал по туториалу какому то, но теперь возник вопрос как выводить текст или toast если ничего...

Приложение крашится при попытке инициализировать searchview - Программирование Android
Кто может подсказать, что я делаю не правильно Приложение рушится на попытке инициализировать элемент SearchView на вот этой строчке ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru