Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

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

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

Создал свой адаптер. Привязал его к списку Spinner. Получил идентификатор выбранной записи. Ну вроде бы как получается в каждом элементе списка хранится объект. Теперь по этому идентификатору мне бы найти позицию этого списка. Вот ломаю голову - как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2015, 20:31
Ответы с готовыми решениями:

Ошибка при установлении ArrayAdapter для TextView
Инициализирую ArrayAdapter arrayAdapter = new ArrayAdapter<>(this,...

Двойной вызов OnItemSelected для spinner
Добрый вечер! Прошу помочь. В main_activity у меня всего лишь один spinner...

Как работает setOnItemSelectedListener для Spinner?
Доброго дня. есть у меня Spinner: String data = {"sdfsdfs.by",...

Кастомный рекламный блок для приложения
Доброго времени суток. Как сделать свой баннер для открутки js или простых...

Кастомный шрифт для всего приложения
подскажите лучший способ использовать кастомный шрифт для всего приложения.

10
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
15.01.2015, 20:41 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
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
15.01.2015, 21:16  [ТС] 3
Armagedo, короче. Весь спинер кастомный. Выбрав позицию через метод get(pos) полчил доступ к объекту. Из объекта вынул полученную идешку записи. В следующее открытие активити я эту идешку уже знаю и мне нужно спинер выбрать на том же объекте. Вот я и думаю как. Хотел использовать IndexOf, но что то не вышло.
Кстати, набор записей и сортировка списка динамические - имеется ввиду при каждом формировании списка (Spinner) его массив данных меняется.
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
16.01.2015, 09:48 4
dubok79, честно говоря, так и не понял, где тут сложность. Для различных списков, хранящихся в адаптере, с целью поиска самого элемента можно использовать саму коллекцию для адаптера (вы же из неё адаптер формируете) либо формировать отдельный список или даже два (один - для объектов, другой - для id).
А, понял, вы хотите, зная id, прокрутить к нужному элементу списка. Тогда можно предположить, что адаптер будет упорядочен так же, как и исходный список. По id найти индекс в исходном массиве. Установить spinner в эту позицию.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 10:27  [ТС] 5
Цитата Сообщение от CoolMind Посмотреть сообщение
По id найти индекс в исходном массиве. Установить spinner в эту позицию.
А как мне найди индекс в исходном массиве? Пробежать по нему? Ведь массив состоит из объектов.
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
16.01.2015, 11:15 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);
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 11:20  [ТС] 7
Спасибо, это все понятно. Я еще подумаю над своей задачей, потом более конкретно задам вопрос. Наверное я неточно все-таки выражаюсь. А может и решится все.
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
16.01.2015, 11:21 8
dubok79, пожалуйста. Да, там просто нужно немного поэкспериментировать.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
17.01.2015, 01:50  [ТС] 9
В итоге решил задачу методом перебора массива и поиска нужной позиции. Т.к. массив небольшой, мне показалось это проще чем создавать дополнительные массивы данных. Спасибо за помощь.
0
CoolMind
422 / 404 / 66
Регистрация: 06.10.2012
Сообщений: 1,732
17.01.2015, 20:24 10
dubok79, ну хорошо, раз так. Задачу можно решить многими способами, в том числе и перебором, если искать по id.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
17.01.2015, 22:03  [ТС] 11
CoolMind, спасибо за наводку. Я всегда мучаю себя стандартными методами, но ява приучает пользоваться своим умом. ПМСМ
0
17.01.2015, 22:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2015, 22:03

Кастомный шрифт для всего приложения android eclipse
Как можно применить один шрифт для всего приложения полностью, включая не...

Собственный ArrayAdapter
Доброго времени суток. Пытаюсь написать собственный адаптер для строкового...

ACTION_SEND в ArrayAdapter
Ребят,вопрос такой, есть GridView с картинками, к нему отдельным классом...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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