Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Как передать тег (view.setTag(holder) - Программирование Android

04.10.2013, 00:25. Просмотров 2347. Ответов 3
Метки нет (Все метки)

Здравствуйте!

Использую адаптер и у меня он вида:

c
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
39
40
41
42
43
44
45
lass ItemAdapter extends BaseAdapter {
 
        private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener();
 
        private class ViewHolder {
            public TextView text;
            public ImageView image;
        }
 
        @Override
        public int getCount() {
            return imageUrls.length;
        }
 
        @Override
        public Object getItem(int position) {
            return position;
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            View view = convertView;
            final ViewHolder holder;
            if (convertView == null) {
                view = getLayoutInflater().inflate(R.layout.item_list_image, parent, false);
                holder = new ViewHolder();
                holder.text = (TextView) view.findViewById(R.id.text);
                holder.image = (ImageView) view.findViewById(R.id.image);
                view.setTag(holder);
            } else {
                holder = (ViewHolder) view.getTag();
            }
 
            holder.text.setText("Item " + (position + 1));
 
            imageLoader.displayImage(imageUrls[position], holder.image, options, animateFirstListener);
 
            return view;
        }
    }
как можно передать тег, чтобы получить его здесь:

Java
1
2
3
4
5
6
    listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                startImagePagerActivity(position);
            }
        });
раньше делал без использования ViewHolder:

Java
1
2
int id = mListItems.get(position).getId();
view.setTag(id);
а теперь нельзя так, так как уже есть
Java
1
view.setTag(holder);
не пойму как передавать теги и получать значения, подскажите!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 00:25     Как передать тег (view.setTag(holder)
Посмотрите здесь:

RecyclerView и java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter pos - Программирование Android
Добрый день! У меня есть RecyvlerView, который изумительно работает на всех устройствах, кроме Samsung. На Samsung я получаю...

Есть класс унаследованный от View - как туда передать данные? - Программирование Android
getIntent() не работает.

Передать dialogInterface во View - Программирование Android
В AlertDialog через setView устанавливаю форму с полями. Нужно по нажатию кнопки при правильно заполненной форме закрыть диалог, а при...

Передать через intent VIEW - Программирование Android
Как можно через intent передать &quot;VIEW&quot;, полученное вот таким способом: View view = (View)findViewById(R.id.layout_linear); Передавая...

Как программно менять View? - Программирование Android
Вечер добрый. Есть слой, в нём список. Как сделать, чтобы при нажатии на элемент списка список заменялся другим view-элементом?

Как рисовать текст на Canvas во View? - Программирование Android
Есть ImageView. Я делаю так: Canvas canvas; canvas = new Canvas(); canvas.drawText(&quot;Текст&quot;, 0, 0, null); А потом уже: ...

Многократное использование Custom View - как - Программирование Android
Привет всем, я новичок в андроид с опытом Java и Flash, и после пары дней бития головой об стену решил попросить помощи и совета. ...

ViewPager как узнать текущую View - Программирование Android
Добрый вечер ув. Программисты. Есть ViewPager с даптером и прочими приблудами. Когда я пролистываю листы, каким методом они...

Как закрыть приложение из view activity? - Программирование Android
Есть простой класс который расширяется от View в котором нужно завершить другое активити, этот View класс добавлен в основной класс с...

Как обрабатывать не только View элементы - Программирование Android
ImageView btn1 = (ImageView)findViewById(R.drawable.gorod_cveta_button1); final Animation anim1 =...

Как обратиться к свойствам View по имени? - Программирование Android
С помощью toString() можно получить имя видимо любого View Например textView.toString() Но что с этим именем можно делать? Как с...

Как отделить группу элементов в recycler view? - Программирование Android
например: =================== new--- d f g h --------//как сделать такой разделитель(как divideitemdecoration, но только для 1-го...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
04.10.2013, 00:45     Как передать тег (view.setTag(holder) #2
Используйте Pair<Integer, ViewHolder> как тег.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
04.10.2013, 01:10  [ТС]     Как передать тег (view.setTag(holder) #3
Цитата Сообщение от Netscape Посмотреть сообщение
Используйте Pair<Integer, ViewHolder> как тег.
а дальше??

можно поподробней?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
04.10.2013, 01:15     Как передать тег (view.setTag(holder) #4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
а дальше??
А что дальше ? Создаете свой кортеж,
Java
1
2
3
Pair<Integer, ViewHolder> pair = new Pair<Integer, ViewHolder>();
pair.first = id;
pair.second = holder;
устанавливаете его как тег,
Java
1
view.setTag(pair);
и когда нужно вытаскиваете.
Java
1
2
3
Pair<Integer, ViewHolder> pair = (Pair<Integer, ViewHolder>) view.getTag();
int id = pair.first;
ViewHolder holder = pair.second;
Yandex
Объявления
04.10.2013, 01:15     Как передать тег (view.setTag(holder)
Ответ Создать тему
Опции темы

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