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

Как передать тег (view.setTag(holder) - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
04.10.2013, 00:25     Как передать тег (view.setTag(holder) #1
Здравствуйте!

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

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)
Посмотрите здесь:

Android ViewPager как узнать текущую View
Android Как закрыть приложение из view activity?
Как обрабатывать не только View элементы Android
Передать через intent VIEW Android
Как программно менять View? Android
Android Как рисовать текст на Canvas во View?
Android В чем разница (View view) и (View v)
RecyclerView и java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter pos Android
Public void onClick(View view) Android
Передать dialogInterface во View Android
Android Многократное использование Custom View - как
Как обратиться к свойствам View по имени? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
 Аватар для 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
 Аватар для 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)
Ответ Создать тему
Опции темы

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