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

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

Войти
Регистрация
Восстановить пароль
 
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Кастомный ArrayAdapter для Spinner - Android

15.01.2015, 20:31. Просмотров 607. Ответов 10
Метки нет (Все метки)

Создал свой адаптер. Привязал его к списку Spinner. Получил идентификатор выбранной записи. Ну вроде бы как получается в каждом элементе списка хранится объект. Теперь по этому идентификатору мне бы найти позицию этого списка. Вот ломаю голову - как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.01.2015, 20:41     Кастомный ArrayAdapter для Spinner #2
В смысле?

When the user selects an item from the drop-down, the Spinner object receives an on-item-selected event.
http://developer.android.com/guide/t...SelectListener
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
15.01.2015, 21:16  [ТС]     Кастомный ArrayAdapter для Spinner #3
Armagedo, короче. Весь спинер кастомный. Выбрав позицию через метод get(pos) полчил доступ к объекту. Из объекта вынул полученную идешку записи. В следующее открытие активити я эту идешку уже знаю и мне нужно спинер выбрать на том же объекте. Вот я и думаю как. Хотел использовать IndexOf, но что то не вышло.
Кстати, набор записей и сортировка списка динамические - имеется ввиду при каждом формировании списка (Spinner) его массив данных меняется.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.01.2015, 09:48     Кастомный ArrayAdapter для Spinner #4
dubok79, честно говоря, так и не понял, где тут сложность. Для различных списков, хранящихся в адаптере, с целью поиска самого элемента можно использовать саму коллекцию для адаптера (вы же из неё адаптер формируете) либо формировать отдельный список или даже два (один - для объектов, другой - для id).
А, понял, вы хотите, зная id, прокрутить к нужному элементу списка. Тогда можно предположить, что адаптер будет упорядочен так же, как и исходный список. По id найти индекс в исходном массиве. Установить spinner в эту позицию.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 10:27  [ТС]     Кастомный ArrayAdapter для Spinner #5
Цитата Сообщение от CoolMind Посмотреть сообщение
По id найти индекс в исходном массиве. Установить spinner в эту позицию.
А как мне найди индекс в исходном массиве? Пробежать по нему? Ведь массив состоит из объектов.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.01.2015, 11:15     Кастомный ArrayAdapter для Spinner #6
dubok79, для этого вы можете, например, создать 2 массива (один - из id, второй - из объектов). Либо хэш (ключ - id, элементы - индекс и объект, либо просто индекс). Либо массив из двух полей (id и объект). Можно придумать и другие варианты. Например, такой:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    private class FileData {
        private int index;
        private Action action;
    }
 
    LongSparseArray<FileData> arrFileData = new LongSparseArray<FileData>();
 
    ....
    FileData data = new FileData();
    data.index = i++;
    data.action = action;
    arrFileData.put(id, data);
 
    ....
    FileData data = arrFileData.get(id);
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 11:20  [ТС]     Кастомный ArrayAdapter для Spinner #7
Спасибо, это все понятно. Я еще подумаю над своей задачей, потом более конкретно задам вопрос. Наверное я неточно все-таки выражаюсь. А может и решится все.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.01.2015, 11:21     Кастомный ArrayAdapter для Spinner #8
dubok79, пожалуйста. Да, там просто нужно немного поэкспериментировать.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
17.01.2015, 01:50  [ТС]     Кастомный ArrayAdapter для Spinner #9
В итоге решил задачу методом перебора массива и поиска нужной позиции. Т.к. массив небольшой, мне показалось это проще чем создавать дополнительные массивы данных. Спасибо за помощь.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
17.01.2015, 20:24     Кастомный ArrayAdapter для Spinner #10
dubok79, ну хорошо, раз так. Задачу можно решить многими способами, в том числе и перебором, если искать по id.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2015, 22:03     Кастомный ArrayAdapter для Spinner
Еще ссылки по теме:

Отличия в работе ArrayAdapter Android
ArrayAdapter и много заморочек Android
Собственный адаптер на основе ArrayAdapter Android
Кастомный рекламный блок для приложения Android
Android ACTION_SEND в ArrayAdapter

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

Или воспользуйтесь поиском по форуму:
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
17.01.2015, 22:03  [ТС]     Кастомный ArrayAdapter для Spinner #11
CoolMind, спасибо за наводку. Я всегда мучаю себя стандартными методами, но ява приучает пользоваться своим умом. ПМСМ
Yandex
Объявления
17.01.2015, 22:03     Кастомный ArrayAdapter для Spinner
Ответ Создать тему
Опции темы

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