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

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

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

Кастомный ArrayAdapter для Spinner - Программирование Android

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

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

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

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

Двойной вызов OnItemSelected для spinner - Программирование Android
Добрый вечер! Прошу помочь. В main_activity у меня всего лишь один spinner (+id/spinner1). При смене ориентации экрана вызывается...

Как работает setOnItemSelectedListener для Spinner? - Программирование Android
Доброго дня. есть у меня Spinner: String data = {"sdfsdfs.by", "adfaf.ru", "afafafafaf.uk", "afasa.ua", "goof.net"}; ...

Кастомный шрифт для всего приложения android eclipse - Программирование Android
Как можно применить один шрифт для всего приложения полностью, включая не только кнопки и текствьюшки, но и ЭкшнБары, Табы, Листы и тд.? ...

Собственный ArrayAdapter - Программирование Android
Доброго времени суток. Пытаюсь написать собственный адаптер для строкового типа: titles = new ArrayList<String>(messages.size());...

10
Armagedo
208 / 208 / 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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
15.01.2015, 21:16  [ТС] #3
Armagedo, короче. Весь спинер кастомный. Выбрав позицию через метод get(pos) полчил доступ к объекту. Из объекта вынул полученную идешку записи. В следующее открытие активити я эту идешку уже знаю и мне нужно спинер выбрать на том же объекте. Вот я и думаю как. Хотел использовать IndexOf, но что то не вышло.
Кстати, набор записей и сортировка списка динамические - имеется ввиду при каждом формировании списка (Spinner) его массив данных меняется.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
16.01.2015, 09:48 #4
dubok79, честно говоря, так и не понял, где тут сложность. Для различных списков, хранящихся в адаптере, с целью поиска самого элемента можно использовать саму коллекцию для адаптера (вы же из неё адаптер формируете) либо формировать отдельный список или даже два (один - для объектов, другой - для id).
А, понял, вы хотите, зная id, прокрутить к нужному элементу списка. Тогда можно предположить, что адаптер будет упорядочен так же, как и исходный список. По id найти индекс в исходном массиве. Установить spinner в эту позицию.
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 10:27  [ТС] #5
Цитата Сообщение от CoolMind Посмотреть сообщение
По id найти индекс в исходном массиве. Установить spinner в эту позицию.
А как мне найди индекс в исходном массиве? Пробежать по нему? Ведь массив состоит из объектов.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.01.2015, 11:20  [ТС] #7
Спасибо, это все понятно. Я еще подумаю над своей задачей, потом более конкретно задам вопрос. Наверное я неточно все-таки выражаюсь. А может и решится все.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
16.01.2015, 11:21 #8
dubok79, пожалуйста. Да, там просто нужно немного поэкспериментировать.
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
17.01.2015, 01:50  [ТС] #9
В итоге решил задачу методом перебора массива и поиска нужной позиции. Т.к. массив небольшой, мне показалось это проще чем создавать дополнительные массивы данных. Спасибо за помощь.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
17.01.2015, 20:24 #10
dubok79, ну хорошо, раз так. Задачу можно решить многими способами, в том числе и перебором, если искать по id.
0
dubok79
323 / 121 / 11
Регистрация: 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
Привет! Вот еще темы с ответами:

ACTION_SEND в ArrayAdapter - Программирование Android
Ребят,вопрос такой, есть GridView с картинками, к нему отдельным классом подключен Adapter. Необходимо по клику картинки делать ACTON_SEND....

Привязка класса к ArrayAdapter - Программирование Android
Добрый день. Есть класс, содержащий опросы private static class Polls { private final int _Id; private final...

Отличия в работе ArrayAdapter - Программирование Android
Что то не понятное с ArrayAdapter на Android 2.3, У меня есть EditText в списке, меняя значение одного, меняются все. На Android &gt;= 4.0 все...

ArrayAdapter и много заморочек - Программирование Android
Сам ArrayAdapter String data = new String{&quot;Текст 1&quot;,&quot;Текст 2&quot;}; ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, ...


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

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

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