С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
#1

Установка параметра для ImageView - Программирование Android

17.07.2013, 16:14. Просмотров 990. Ответов 10
Метки нет (Все метки)

Доброго времени суток!

Я динамически создаю изображения:
Java
1
2
ImageView image = new ImageView(this);
         layout.addView(image);
Мне нужно повесить на данный ImageView несколько параметров, например itemType="application" и itemId="56"
Это нужно для того, чтобы повесить на эти ImageView - онкликлысенер, который будет считывать эти параметры и передавать их в другое activity. Как это сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2013, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Установка параметра для ImageView (Программирование Android):

Скопировать картинку из одной ImageView в другую ImageView - Программирование Android
В ImageView поставлена картинка методом setImageResource. По нажатию на неё, нужно такую-же картинку поставить в другую вью, а в первой...

Высвободить пямять для ImageView - Программирование Android
Подскажите, хочу высвободить память от переменой play ,но у меня recycle(); подчеркнуто красной линеей private void playOff() { if...

Библиотека для зума ImageView - Программирование Android
https://github.com/jasonpolites/gesture-imageview почему эта либа в getX возвращает большое число? хотя должно быть около нуля, т.к...

ImageView - Программирование Android
Добрый день. Вы не подскажите, как передать изображение из одного ImageView в Другой. Допустим есть три картинки в папке drawable и одна...

ImageView - Программирование Android
Подскажите как правильно выводить картинку из URL Вроде нашел какой то пример в сети, но что то не работает. Да и почитав, понял что...

ImageView - Программирование Android
Добрый день ! Делал проект с нуля, все как обычно, но при поиске id для ImageView мне вдруг выдает : The method findByViewId(int) is...

10
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 254
17.07.2013, 17:08 #2
А почему просто не сделать image.setOnClickListener(...) и все через сеттеры вставлять. Неужели нет подобных?
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
17.07.2013, 17:09 #3
Java
1
image.setTag(object);
где object - структура нужных параметров.
1
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
17.07.2013, 17:11  [ТС] #4
Цитата Сообщение от JIyrApy Посмотреть сообщение
А почему просто не сделать:
Java
1
image.setOnClickListener(...)
И все через сеттеры вставлять. Неужели нет подобных
Потому что так очень много лысенеров будет, нужно чтоб был один который будет читать эти параметры....
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
17.07.2013, 17:12  [ТС] #5
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Java
1
image.setTag(object);
где object - структура нужных параметров.
А как примерно будет выглядеть этот object??
Всмысле как вбить в него эти параметры?
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
17.07.2013, 17:18 #6
Создаёте ImageParams, забиваете данными, устанавливаете к изображению, как тэг. Получить параметры - в обратном порядке.
Java
1
2
3
4
5
public class ImageParams {
    public String itemType;
    public int itemId;
    //и пр. нужные поля
}
Вы ViewHolder'ом пользовались? Аналогично..
1
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
17.07.2013, 17:40  [ТС] #7
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Вы ViewHolder'ом пользовались? Аналогично..
ViewHolder'ом не пользовался.....

Вот так правильно будет?

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class CData {
public String itemTypel;
public int itemId;
}
 
CData cData = new CData();
cData.itemType = "application";
cData.itemId = 56;
 
ImageView image = new ImageView(this);
image.setTag(cData);
layout.addView(image);
И как правильно getTag() сделать?
0
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
17.07.2013, 22:27 #8
Цитата Сообщение от Sanu0074 Посмотреть сообщение
Вот так правильно будет?
Да, верно.

Цитата Сообщение от Sanu0074 Посмотреть сообщение
как правильно getTag() сделать?
Java
1
CData сData = (CData) image.getTag()
1
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
18.07.2013, 00:26  [ТС] #9
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Да, верно.


Java
1
CData сData = (CData) image.getTag()
А как правильно в этот проект добавить общий onClickListener, чтобы он прослушивал все картинки и мог читать параметры с помощью getTag()??

Добавлено через 25 минут
Я сделал так, добавил:
Java
1
public class Main extends Activity implements OnClickListener{
и потом здесь так сделал:
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
    public void rec(String imageLnk, String name) 
    { 
        LinearLayout layout = (LinearLayout) findViewById(R.id.mainLinear);
 
        LinearLayout imageLayout = new LinearLayout(this);
        
        TextView txt = new TextView(this); 
        txt.setText(name); 
        txt.setTextSize(18);
        
        ImageView image = new ImageView(this);
        CData cData = new CData();
        cData.itemType = "application";
        cData.itemId = 56;
        cData.name = name;
        image.setTag(cData);
        layout.addView(image);
        image.setOnClickListener(this);
        imageLayout.addView(image);
        
        layout.addView(txt);
        layout.addView(imageLayout);
         
        new DownloadImageTask(image).execute(imageLnk);
    }
И теперь как мне тут, получить значения с помощью getTag() у картинки по которой кликнули?

Таким способом не работает:
Java
1
2
3
4
5
6
7
@Override
        public void onClick(View v) {
        // TODO Auto-generated method stub
        CData сData = (CData) v.getTag();
        
        Toast.makeText(this, сData.name.toString(), Toast.LENGTH_SHORT).show();
    }
Вот сам проект на всякий случай, вдруг опять запарил чтото помелочи...
0
Вложения
Тип файла: rar test.rar (3.03 Мб, 4 просмотров)
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.07.2013, 10:46 #10
Цитата Сообщение от Sanu0074 Посмотреть сообщение
image.setOnClickListener(this);
Я этой строки не увидел в проекте..

Цитата Сообщение от Sanu0074 Посмотреть сообщение
Таким способом не работает
Если нет всплывающего Toast'а (даже пустого), то проблема не в тэгах, а в обработчиках событий.
1
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
18.07.2013, 10:51  [ТС] #11
Цитата Сообщение от Wenceslaus Посмотреть сообщение
Если нет всплывающего Toast'а (даже пустого), то проблема не в тэгах, а в обработчиках событий.
Уже заработало)))) Поставил в онкликлысенере Main.this
0
18.07.2013, 10:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 10:51
Привет! Вот еще темы с ответами:

На счет ImageView - Программирование Android
Ребят, очень важный вопрос: Предложим у меня есть две картинки у них есть свои ID, как написать проверку - "Есть ли выше одной картинки...

Взаимодействие с ImageView - Программирование Android
Господа подскажите как сделать так, чтобы пользователь мог взаимодействовать только с частью ImageView(в данном случай с выводами...

Наследование от ImageView - Программирование Android
Класс: public class AnimalView extends ImageView { private int AnimalType; public static final int DONKEY = 1; public...

ImageView и анимация - Программирование Android
Всем привет! Как можно переместить ImageView за пределы правой границы экрана ровно на половину изображения? Использую отрицательный...


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

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

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