Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 147
1

Определить, на какое слово кликнули в TextView

31.07.2014, 00:09. Просмотров 1172. Ответов 10
Метки нет (Все метки)

Здравствуйте! Появилась надобность определить на какое слово кликнули в TextView. Как можно это сделать?
Координаты - не вариант, т.к. разные размеры экрана + текст со скроллингом, много гемора получится
Сейчас рассматриваю вариант с link'ами, но не могу найти, чтобы определить по какому именно слову нажали.
В целом должно быть так: есть текст, в нем несколько активных слов, к примеру "телефон". Это слово подчеркивается и выделяется, по нажатие на него должна появится подсказка.
Вот и в принципе вопрос
P.S. Если в кратце - нужно на конкретное слово в TextView повесить обработчик клика.
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2014, 00:09
Ответы с готовыми решениями:

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел...

TextView txt = new TextView(this); - ошибка
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте...

Определить какое слово больше
Вечер добрый! Надо определить какое с двух первых слов имеет больше символов...

в с++ определить какое по порядку слово в строке
только начало #include "stdafx.h" #include "string.h" #include "ctype.h"...

Определить какое слово с какой из приставок записано
1. Условие: На уроке разбирали тему: «Правописание приставок „из» и „ис“»....

10
razer89
15 / 15 / 0
Регистрация: 20.06.2010
Сообщений: 142
31.07.2014, 02:50 2
Можно повесить листенер только на весь TextView, но не на конкретное слово. Если уж очень хочется, то в голову приходит только одно - нужное слово выводить в отдельном TextView, и уже на него вешать листенер.
1
krapotkin
3418 / 3025 / 1047
Регистрация: 14.04.2014
Сообщений: 14,677
Записей в блоге: 15
31.07.2014, 06:34 3
та функциональность, что описана, не соответствует TextView зато соответствует WebView
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
31.07.2014, 08:36 4
Razangann, копируйте выделенное в буфер и сверяйте.
1
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
31.07.2014, 11:29 5
Лучший ответ Сообщение было отмечено Razangann как решение

Решение

Готовое решение через span'ы:
http://stackoverflow.com/a/8617672/2894324
1
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 147
31.07.2014, 13:18  [ТС] 6
Спасибо! Вот про Span - почти то, что нужно...только span'ом делается весь текст, а нужно некоторые слова, можно ли это сделать? Пробовал через textview.append("asd"), но он так же выделяется и реагирует...
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
31.07.2014, 13:49 7
Цитата Сообщение от Razangann Посмотреть сообщение
только span'ом делается весь текст
Вы уверены? Я попробовал только что этот пример, у меня каждое слово отдельно кликабельно.
1
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 147
31.07.2014, 13:50  [ТС] 8
Вот в том и проблема - каждое. А нужно к примеру только одно слово кликается, а остальные просто текст...
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
31.07.2014, 13:54 9
Лучший ответ Сообщение было отмечено Razangann как решение

Решение

Цитата Сообщение от Razangann Посмотреть сообщение
Вот в том и проблема - каждое.
Все, теперь понял.

Вот смотрите, здесь цикл перебирает все слова и делает их кликабельными.
нужно просто добавить проверку для слова, и если оно удовлетворяет каким-то условиям - сделать его кликабельным
Java
1
2
3
4
5
6
7
8
9
10
11
for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator
                .next()) {
            String possibleWord = definition.substring(start, end);
            if (possibleWord.equals("words")) { // здесь условие
                if (Character.isLetterOrDigit(possibleWord.charAt(0))) {
                    ClickableSpan clickSpan = getClickableSpan(possibleWord);
                    spans.setSpan(clickSpan, start, end,
                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                }
            }
        }
1
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 147
31.07.2014, 13:57  [ТС] 10
Вооооо!!!!!!!!! Круто! 2 дня мучился, наконец Спасибо огромное!!!!!))
P.S. А ничего если у меня текст русский с буквами "й" и "ё"? Смущает строчка Locale.US...
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
31.07.2014, 14:03 11
Цитата Сообщение от Razangann Посмотреть сообщение
P.S. А ничего если у меня текст русский с буквами "й" и "ё"? Смущает строчка Locale.US...
Можно взять русскую локаль:
Java
1
2
Locale ruLocale = new Locale("ru","RU");
BreakIterator iterator = BreakIterator.getWordInstance(ruLocale);
1
31.07.2014, 14:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 14:03

Определить, какое слово встречается в строке чаще всего
Задана строка, которая состоит из символов. Символы сочетают в слова. Слова...

Определить, какое слово встречается в строке чаще всего
1. Определить какое слово встречается в строке чаще всего. можно с пояснениями...

Определить какое слово в строке встречается чаще всего
ребят,помогите.Для Вас же это как семечки 1. Определить какое слово в строке...


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

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

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