2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|
1 | |
Как реализовать выделение элементов таблицы30.09.2016, 20:44. Показов 595. Ответов 11
Метки нет (Все метки)
Уважаемые знатоки, нужна ваша помощь
Имеется таблица, созданная с помощью GridLayout, элементами которой являются ImageView. После реализации View.OnClickListener и регистрации слушателей для этих ImageView на них срабатывают нажатия. Но они за одно нажатие срабатывают только на одном элементе. А мне нужно за одно нажатие выделить несколько элементов (как в игре балда, когда надо выделить слово). Как это можно реализовать?
0
|
30.09.2016, 20:44 | |
Ответы с готовыми решениями:
11
Как реализовать выделение линий Как реализовать выделение пункта меню, на странице которого нахожусь Как реализовать выделение пункта меню, на странице которого нахожусь Как реализовать заполнение таблицы |
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
30.09.2016, 22:53 | 2 |
Можно сделать свою вьюшку - гибрид ImageView и Toggle...
0
|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|
01.10.2016, 13:30 [ТС] | 3 |
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
01.10.2016, 13:40 | 5 |
Сделать CustomImageView extends ImageView, добавить внутрь нее OnClickListener, переменную boolean и по onClick циклически менять ее значение. Добавить для этой переменной геттер и сеттер. Можно туда же приделать интерфейс, который будет выдавать состояние переменной, а по нему уже делать что хочешь - менять цвет, фон, картинку, надпись и т.д. в зависимости выделено - не выделено.
0
|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|||||||||||
01.10.2016, 16:28 [ТС] | 6 | ||||||||||
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Как в игре "Балда", выделять соседние клетки, по горизонтали и вертикали. А какие именно выделять, зависит от содержимого клетки (допустим, иметь ещё один массив String[][] (в дополнение к ImageView[][]), в котором будут храниться буквы). Спасибо, попробую. Правда пока непонятно, как это сработает... Добавлено через 53 минуты OlegJV, а Вы можете показать на моём примере?
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
01.10.2016, 16:35 | 7 |
Paket236, что именно показать?
0
|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|
01.10.2016, 16:43 [ТС] | 8 |
OlegJV, я не понял фразу "и по onClick циклически менять ее значение" и как это поможет выделению элементов таблицы.
Добавлено через 3 минуты Я ещё раз уточню, что элементы должны выделяться за одно нажатие, а не за несколько.
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
01.10.2016, 16:56 | 9 |
Ты тыкаешь на свою CustomImageView. У нее срабатывает метод onClick. Внутри нее есть переменная, допустим boolean checked. Если она была false, то становится true и наоборот. Кроме этого делаешь внутри CustomImageView методы cetChecked и getChecked, меняющие значение checked. Так же по onClick срабатывает интерфейс и выдает в активити значение переменной checked. Активити (в зависимости от значения переменной) в цикле проверяет значения соседних клеток и выставляет им setChecked какой тебе нужно.
Добавлено через 1 минуту Объяснять подробнее - это значит написать программу за тебя.
0
|
2 / 2 / 0
Регистрация: 16.08.2013
Сообщений: 86
|
|
02.10.2016, 00:34 [ТС] | 10 |
А как эти значения попадут в соседние клетки? Либо я тебя не понимаю, либо ты меня. Ещё раз поясню задачу. Я тыкнул пальцем в клетку, затем, не отпуская палец, провёл на соседнюю клетку. Что должно произойти? Обе клетки должны, например, изменить цвет. Что происходит? Меняет цвет только первоначально нажатая. А то, что я пальцем провёл в другую клетку - об этом никакой информации нет (хотя, есть координаты, которые можно получить с помощью event.getX(), но, по-моему, это плохое решение).
На другом форуме мне порекомендовали отказаться от лэйаутов и рисовать таблицу на Canvas (пока не очень представляю, как это реализовать).
0
|
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
|
|
02.10.2016, 01:57 | 11 |
Ты сам себя-то понимаешь? То на нажатия надо реагировать, то на перемещения пальца... Определяйся уже.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
02.10.2016, 09:17 | 12 |
Таблица ведь без скрола? Если да - можно сам GridLayout повесить OnTouch листенер и в ивенте MOVE брать координаты касания, а потом по ним искать картинку и вызывать у нее какой-нибудь метод, который ее перекрасит.
1
|
02.10.2016, 09:17 | |
02.10.2016, 09:17 | |
Помогаю со студенческими работами здесь
12
Как реализовать заполнение таблицы? Как правильно реализовать таблицы Как реализовать хранение таблицы UPDATE таблицы, как лучше реализовать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|