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

Одинаковый хэш-код элементов ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Странное поведение swipe-to-dismiss RecyclerView http://www.cyberforum.ru/android-dev/thread1375635.html
После удаления свайпом элемента списка остаётся небольшой пробе между элементами, сложно объяснить, поэтому вот ссылка на то, что происходит: http://i.imgur.com/v1D149C.gif Когда элемент списка...
Программирование Android Онлайн музыка Как сделать чтобы ссылка на песню из любого хранилища была вот такого вида http://dl.dropboxusercontent.com/u/6197740/explosion.mp3 http://www.cyberforum.ru/android-dev/thread1375627.html
Программирование Android OpenGL es: наложить фон
Всем привет!!! Подскажите пожалуйста как в играх делаются картинки типа background, вот допустим есть улица по которой можно перемещаться, и по окраине улиц стоят дома(дома тоже 3d модели -это как бы...
Программирование Android Android Studio появление картинки
Необходимо реализовать появление на экране картинки при нажатии на кнопку. Имеется файл с кодом картинки (sun.xml) и файл c кодом анимации появления (sun_rize.xml), картинка размещена на...
Программирование Android Виснет Eclipse при тестировании приложения с подключенной библиотекой google_play_services http://www.cyberforum.ru/android-dev/thread1375189.html
Всем привет! Для размещения рекламы в приложении от Admob подключаю к нему библиотеку google_play_services. Если перед этим с тестированием приложения (без рекламы) проблем нет, то после подключения...
Программирование Android Cannot resolve symbol r Значит программировал я приложение для Android в Android studio всё работало.Но одним прекрасным днём решил я добавить новый layout назвал его сalс_byt3_layout. Создал Сalc_byt3_Activuty первым делом... подробнее

Показать сообщение отдельно
neic777
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 138

Одинаковый хэш-код элементов ListView - Программирование Android

16.02.2015, 01:32. Просмотров 409. Ответов 9
Метки (Все метки)

У меня есть ListView с кастомным элементом. В этом кастомном элементе есть кнопка для которой я прописал селектор и состояния. Для адаптера использовал BaseAdapter. Для примера установил 9 элементов списка. Вот содержимое метода getView:
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
    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        View view = convertView;
        ViewHolderItem viewHolderItem;
        if (view == null){
            view = mInflater.inflate(R.layout.item_news, parent, false);
 
            viewHolderItem = new ViewHolderItem();
 
            viewHolderItem.infoText = (TextView) view.findViewById(R.id.info_text_textView);
            viewHolderItem.likeButton = (FButton) view.findViewById(R.id.like_post_button);
            viewHolderItem.card = (CardView) view.findViewById(R.id.news_item_cardView);
 
            view.setTag(viewHolderItem);
 
        } else {
            viewHolderItem = (ViewHolderItem) view.getTag();
        }
 
        viewHolderItem.infoText.setText(items[position]);
        viewHolderItem.likeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setSelected(!v.isSelected());
            }
        });
 
        viewHolderItem.card.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d("MYTAG", "Position: " + position + " Hash: " + Long.toString(v.hashCode()));
            }
        });
 
        return view;
    }
 
    static class ViewHolderItem {
        TextView infoText;
        FButton likeButton;
        CardView card;
    }
Когда я нажимаю на кнопку в первом элемента, то я фиксирую её как нажатая:
Java
1
v.setSelected(!v.isSelected());
Но пролистав вниз, когда все первые элементы ушли с экрана и заменились другими у меня каким-то чудом стала выделенная кнопка и в 6 элементе. Не много расследовав эту магию, мне удалось выяснить что хэш-код первого элемента и 6-го совпадают, соответственно хэш-код 2-го с 7-м совпадают и т.д. Как можно это исправить, чтобы при прокрутке состояние элемента оставалось неизменным и не повторялось на других?
Если заметить, то я использую паттерн ViewHolder.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru