Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16

Получить имя ресурса на котором был произведен клик

01.11.2017, 23:58. Показов 923. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть картинка с названием 1.jpg. Я кbдаю ее в drawable и получается ее адрес R.drawable.1
Как сделать, когда я размещу ее на экране в имейджвью, и кликну на нее, чтобы в отдельную переменную записалось ее имя: 1.jpg?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2017, 23:58
Ответы с готовыми решениями:

Какой клавишей мыши был произведен клик?
Здравствуйте. Может-быть вопрос покажется простым, но как определить - какой клавишей был произведен клик? Суть в следующем: я написал...

Определить, по какому из PictureBox был произведен клик
Есть массив из 15х15 PictureBox, расположенных на форме квадратиком. Задача - при щелчке по какому-то из них вернуть его номера в массиве...

Вывести в label имя пользователя под которым был произведен вход
Имеется вход на форму с БД (Администрирование), вывести в label на форме, имя пользователя под которым был произведен вход, как это...

9
 Аватар для Kazachek
18 / 18 / 8
Регистрация: 03.11.2013
Сообщений: 405
02.11.2017, 07:52
Я думаю это можно сделать следующим образом:
Сначала объявить все имеющиеся картинки, чтоб программа знала их и потом цепляем обработчик на весь контент.
В конце будет проверка на то что какая из картинок была нажата и в соответствии с ним будете записывать в переменную его имя.

Вот пример с кнопками:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class MainActivity extends Activity implements OnClickListener {
  
   TextView tvOut;
   Button btnOk;
   Button btnCancel;
  
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
  
     // найдем View-элементы
     tvOut = (TextView) findViewById(R.id.tvOut);
     btnOk = (Button) findViewById(R.id.btnOk);
     btnCancel = (Button) findViewById(R.id.btnCancel);
  
     // присваиваем обработчик кнопкам
     btnOk.setOnClickListener(this);
     btnCancel.setOnClickListener(this);
   }
  
   @Override
   public void onClick(View v) {
     // по id определеяем кнопку, вызвавшую этот обработчик
     switch (v.getId()) {
     case R.id.btnOk:
       // кнопка ОК
       tvOut.setText("Нажата кнопка ОК");
       break;
     case R.id.btnCancel:
       // кнопка Cancel
       tvOut.setText("Нажата кнопка Cancel");
       break;
     }
   }
  
 }
Подробнее можете найти в данном уроке
0
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
03.11.2017, 21:18  [ТС]
Что то вы мне совсем не то что мне нужно написали.
упрощу задачу. допустим рандомом в имейджвью загружаются 10 картинок. мы не знаем какая будет загружена.
запустили приложение. жмем на картинку. и выводится допустим сообщение: была загружена картинка 4.jpg
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
04.11.2017, 13:09
Цитата Сообщение от Artemiks Посмотреть сообщение
мы не знаем какая будет загружена.
ты не знаешь какая картинка будет загружена твоим кодом в твое ImageView?
0
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
05.11.2017, 16:00  [ТС]
Да, я же написал, что рандомом. на практике у меня все намного сложнее. Но главный вопрос в том, как получить имя файла, который был загружен в имейджвью? нигде не могу найти

Добавлено через 8 минут
На деле у меня справочник. Состоит из листвью, в который с помощью адаптера загружается массив строк текста и массив картинок. Получаются так называемые итемы - строки с картикой и подписью. По клику на итем осуществляется переход в новое активити в которое загружается htm файл с названием соответствующим id кликнутого итема: например кликнули по 7 итему, был загружен файл 7.htm и т.д.
Но тут появляется проблема. Я пытаюсь осуществить поиск по листвью, и когда ищу нужную инфу, то ненужные итемы исчезают, а нужные итемы встают на первые места, соответсвенно их id то же изменяется и тогда соответсвия между id итема и нужным хтм фалом не получается(((
Поэтому я хочу чтобы хтм файл привязывался к имени картинки, так как она всегда привзяана к тексту рядом с ней...... вот как то так
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
05.11.2017, 16:10
Id не может измениться, изменяется позиция элемента в списке.
0
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
05.11.2017, 16:25  [ТС]
Еще как может, и позиция и айди меняются
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.11.2017, 12:53
почитай про RecyclerView, уроков вагон в инете
делается класс-модель и там все прописывается, в том числу название картинки
0
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
07.11.2017, 21:27  [ТС]
Да как вы не поймете. Я так и сделал. есть класс - модель, как шаблон. на его основе строится куча итемов. Мне для каждого итема нужен какой то идентификатор, который бы не менялся даже при их перемешивании в lisview
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.11.2017, 11:48
это ты не понимаешь
сделай поле в этом классе-модели в которое пиши свой уникальный идентификатор, к примеру
Java
1
long id = System.currentTimeMillis();
в корне неверный подход - ориентироваться по вьюшкам в списке
если у тебя ListView то в Ite,ClickListener прилетает позиция нажатого элемента - по этой позиции ты и должен брать из своего листа КЛАСС-МОДЕЛЬ и оттуда читать id
0
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru