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

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

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

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

04.10.2013, 00:25. Просмотров 2404. Ответов 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) (Программирование Android):

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 view) и (View v) - Программирование Android
Я только начинаю изучать программирование под андроид (до этого вобще программированием не занимался), по гуглу удалось найти только...

Public void onClick(View view) - Программирование Android
Не работает public void onClick(View view) :wall: public class MainActivity extends AppCompatActivity implements View.OnClickListener...

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

можно поподробней?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
04.10.2013, 01:15 #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;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 01:15
Привет! Вот еще темы с ответами:

View вытесняет другое view из activity - Программирование Android
После второго EditText должна располагаться кнопка. Но почему-то этот второй EditText выпихивает ее из activity. Что не так?

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2013, 01:15
Ответ Создать тему
Опции темы

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