Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Artemiks
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
1

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

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

Допустим есть картинка с названием 1.jpg. Я кbдаю ее в drawable и получается ее адрес R.drawable.1
Как сделать, когда я размещу ее на экране в имейджвью, и кликну на нее, чтобы в отдельную переменную записалось ее имя: 1.jpg?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2017, 23:58
Ответы с готовыми решениями:

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

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

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

Как получить адрес сервера, откуда был произведен вызов?
кто знает, подскажите, как получить адрес сервера, откуда был произведен вызов. комбинация redirect...

Как сделать чтобы изображение двигалось в то место в котором был клик
Как сделать чтобы изображение двигалось в то место в котором был клик Зарание благодарю !

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

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

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
Artemiks
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
03.11.2017, 21:18  [ТС] 3
Что то вы мне совсем не то что мне нужно написали.
упрощу задачу. допустим рандомом в имейджвью загружаются 10 картинок. мы не знаем какая будет загружена.
запустили приложение. жмем на картинку. и выводится допустим сообщение: была загружена картинка 4.jpg
0
Pablito
2845 / 2263 / 762
Регистрация: 12.05.2014
Сообщений: 7,919
Завершенные тесты: 1
04.11.2017, 13:09 4
Цитата Сообщение от Artemiks Посмотреть сообщение
мы не знаем какая будет загружена.
ты не знаешь какая картинка будет загружена твоим кодом в твое ImageView?
0
04.11.2017, 13:09
Artemiks
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
05.11.2017, 16:00  [ТС] 5
Да, я же написал, что рандомом. на практике у меня все намного сложнее. Но главный вопрос в том, как получить имя файла, который был загружен в имейджвью? нигде не могу найти

Добавлено через 8 минут
На деле у меня справочник. Состоит из листвью, в который с помощью адаптера загружается массив строк текста и массив картинок. Получаются так называемые итемы - строки с картикой и подписью. По клику на итем осуществляется переход в новое активити в которое загружается htm файл с названием соответствующим id кликнутого итема: например кликнули по 7 итему, был загружен файл 7.htm и т.д.
Но тут появляется проблема. Я пытаюсь осуществить поиск по листвью, и когда ищу нужную инфу, то ненужные итемы исчезают, а нужные итемы встают на первые места, соответсвенно их id то же изменяется и тогда соответсвия между id итема и нужным хтм фалом не получается(((
Поэтому я хочу чтобы хтм файл привязывался к имени картинки, так как она всегда привзяана к тексту рядом с ней...... вот как то так
0
ExFau$t
798 / 650 / 173
Регистрация: 08.05.2012
Сообщений: 3,196
05.11.2017, 16:10 6
Id не может измениться, изменяется позиция элемента в списке.
0
Artemiks
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
05.11.2017, 16:25  [ТС] 7
Еще как может, и позиция и айди меняются
0
Pablito
2845 / 2263 / 762
Регистрация: 12.05.2014
Сообщений: 7,919
Завершенные тесты: 1
06.11.2017, 12:53 8
почитай про RecyclerView, уроков вагон в инете
делается класс-модель и там все прописывается, в том числу название картинки
0
Artemiks
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 16
07.11.2017, 21:27  [ТС] 9
Да как вы не поймете. Я так и сделал. есть класс - модель, как шаблон. на его основе строится куча итемов. Мне для каждого итема нужен какой то идентификатор, который бы не менялся даже при их перемешивании в lisview
0
Pablito
2845 / 2263 / 762
Регистрация: 12.05.2014
Сообщений: 7,919
Завершенные тесты: 1
08.11.2017, 11:48 10
это ты не понимаешь
сделай поле в этом классе-модели в которое пиши свой уникальный идентификатор, к примеру
Java
1
long id = System.currentTimeMillis();
в корне неверный подход - ориентироваться по вьюшкам в списке
если у тебя ListView то в Ite,ClickListener прилетает позиция нажатого элемента - по этой позиции ты и должен брать из своего листа КЛАСС-МОДЕЛЬ и оттуда читать id
0
Ответ Создать тему
Опции темы

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