Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15

Заполнение spinner из массива

08.03.2016, 22:24. Показов 7074. Ответов 23

Студворк — интернет-сервис помощи студентам
Добрый день! Впервые на этом форуме, да и вообще новичок в разработке, поэтому не ругайте сильно, если уже были ответы, просто посоветуйте где посмотреть.

Вопрос такой, есть активность с 5 spinnerами в каждом из которых заносится до 100 значений цифрами. Конечно можно вручную в string сделать массив строк, но значений много и логичнее сделать их путем заполнения массивов в цикле, да и лучше в отдельном классе. Вот пожалуй и главный вопрос как?
Я сделал такой класс https://gist.github.com/anonym... 3b4fc6cbee, а дальше не могу понять как связать ArrayList с элементом spinner в активности. Что нужно использовать, адаптер или что то еще?
Всем спасибо за помощь и учтите, что все когда то начинали с самого 0, ну кроме тех кто учился на это в универе)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2016, 22:24
Ответы с готовыми решениями:

Заполнение связанных Spinner массивами из строк
Всем привет. Первый спиннер заполняется элементами массива строк (массив прописан в ресурсах), по позиции элемента через switch case of...

Не выводятся в spinner названия из массива
Всем доброго времени суток. У меня возникла проблема: При подключении к серверу, названия файлов, лежащих на нем, должны выводиться в...

Найти сумму четных элементов массива целых чисел. Размерность массива – 20. Заполнение массива осуществить случайными числами от 100 до 200
Найти сумму четных элементов массива целых чисел. Размерность массива – 20. Заполнение массива осуществить случайными числами от 100 до 200

23
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
08.03.2016, 23:32
Ну так почитайте про спинеры, в гугле полно инфы и при чем на русском, посмотрите как подключаются данные, как пишутся кастомные адаптеры если нужно.
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
09.03.2016, 17:31  [ТС]
На интересующий вопрос не нашёл ответа, а про адаптеры я же и спросил, потому как не понял как связать с методами из моего класса.

Добавлено через 17 часов 13 минут
сурово
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
09.03.2016, 17:49
Miki48RU, не разобрались ещё? Я уже всё забыл, но через adapter можно. Создаёте коллекцию и передаёте в adapter.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.03.2016, 17:53
Java
1
2
3
4
5
6
7
8
9
        ArrayList<String> list = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            list.add(String.valueOf(i));
        }
 
        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, list);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
09.03.2016, 20:17  [ТС]
Такой вариант я бы не хотел использовать, есть мысль и желание заолнять спиннеры в отдельном классе, так сказать не загружать активность методами. Можно ли в адаптер вставить геттер с массивом?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.03.2016, 20:24
Цитата Сообщение от Miki48RU Посмотреть сообщение
Такой вариант я бы не хотел использовать,
это был пример, если не понятно

Цитата Сообщение от Miki48RU Посмотреть сообщение
Можно ли в адаптер вставить геттер с массивом?
попробовать что-то мешает?
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
09.03.2016, 20:28  [ТС]
Логично, попробую. отпишусь.
0
59 / 48 / 13
Регистрация: 03.09.2013
Сообщений: 474
09.03.2016, 20:44
Почитайте про кастомные адаптеры к ListView. Сразу станет всё понятней, свой адаптер и модель данных для наполнения, самый очевидный пример.
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
09.03.2016, 22:03  [ТС]
Геттеры в адаптере не дает использовать.

Добавлено через 36 минут
сделал свой адаптер
Java
1
2
3
4
5
6
7
8
private void fillSpinners(){
        for (int i = 1; i < spinners.length; i++) {
            Spinner spinner = (Spinner)findViewById(spinners[i]);
            ArrayAdapter<Integer> adapter = ArrayAdapter.createFromResource(this, spinnersData.get(i), android.R.layout.simple_spinner_item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
        }
    }
но на spinnersData.get(i) указывает, что ошибка аргумента, при этом все равно требует заполнить int в скобках. В чем опять проблема?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.03.2016, 12:05
неужели так сложно внимательно посмотреьт мой код и сделать пару выводов?
во-первых в адаптер нельзя всунуть List интегеров, как минимум надо при заполнении листа инты переводить в строки
во-вторых в моем примере адаптер создается вообще не так

Цитата Сообщение от Miki48RU Посмотреть сообщение
В чем опять проблема?
проблема в том, что ты пришел на форум со своим мнением и не читаешь что тебе пишут
1
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
10.03.2016, 12:47  [ТС]
Паблито, в Ваших нравоучениях не нуждаюсь. Если Вы посмотрите, то это совсем не Ваш код, это мой адаптер, а наличие листа интегров , или срингов, не влияет на наличие ошибки указанной мной.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.03.2016, 12:58
а я и не говорил что это мой код
мой код выше - рабочий, если на него пристально посмотреть то можно заметить что адаптер создается не так и про строки я уже тоже говорил

твое сообщение выше еше раз подтверждает мои слова
Цитата Сообщение от Паблито Посмотреть сообщение
ты пришел на форум со своим мнением и не читаешь что тебе пишут
Добавлено через 8 минут

Не по теме:

странно, что в теме еще не засветился защитник угнетенных и бог культурного общения )

0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
10.03.2016, 16:16  [ТС]
Цитата Сообщение от Паблито Посмотреть сообщение
мой код выше - рабочий, если на него пристально посмотреть то можно заметить что адаптер создается не так и про строки я уже тоже говорил
Ваш код мне не интересен, равно как и адаптер, реализация в моем случае другая, более логичная.
0
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
10.03.2016, 16:28
Цитата Сообщение от Miki48RU Посмотреть сообщение
сделал свой адаптер
Ничего вы не создали, вы просто откуда-то скопипастили пару строк. Если вы хотите создать кастомный адаптер, то создайте отдельный класс который будет наследоваться от класса BaseAdapter. Если честно, судя по вашим комментариям вы не в адеквате, вам отправили готовый пример, а вы начинаете ерничать и делать вид мол вы все сами можете. Тебе показали как это сделать, а создавать классы и тому подобным вещам тебя тут учить не будут.

Добавлено через 5 минут
Цитата Сообщение от Паблито Посмотреть сообщение
во-первых в адаптер нельзя всунуть List интегеров, как минимум надо при заполнении листа инты переводить в строки
С чего вы решили что нельзя? Можно.
CSS
1
2
3
However the TextView is referenced, it will be filled with the toString() of each object in the array. 
You can add lists or arrays of custom objects. Override the toString() method of your objects to determine 
what text will be displayed for the item in the list.
Я думаю это стоит прочитать всем - http://developer.android.com/i... apter.html
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
10.03.2016, 16:30  [ТС]
Так и знал, что появятся великие программисты и будут вместо подсказок тыкать разбухшим самомнением.
Если Вы прочитаете пост, самый первый, то поймете, что я указал на то, как мне нужно реализовать спиннер, через свой класс, не размещая исходный код в активности, а то что показал Паблито, совсем другая реализация, причем не совсем правильная, хотя как пример и подходящая, но не для моей реализации. Ничего лишнего я не просил, а указать на то как реализовать заполнение спиннера через массив, или тот же List но из другого класса.
Кроме того, мой адаптер это не просто строчки кода, это как раз кастомная реализация заполнения List массивом нужных спиннеров, проблема только в том, что он выкидывает exception и я не пойму почему.

Error37, 51) error: method createFromResource in class ArrayAdapter<T> cannot be applied to given types;
required: Context,int,int
found: RatesActivity,List,int
reason: actual argument List cannot be converted to int by method invocation conversion
where T is a type-variable:
T extends Object declared in class ArrayAdapter
0
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
10.03.2016, 16:32
Цитата Сообщение от Miki48RU Посмотреть сообщение
Так и знал, что появятся великие программисты и будут вместо подсказок тыкать разбухшим самомнением.
Если Вы прочитаете пост, самый первый, то поймете, что я указал на то, как мне нужно реализовать спиннер, через свой класс, не размещая исходный код в активности, а то что показал Паблито, совсем другая реализация, причем не совсем правильная, хотя как пример и подходящая, но не для моей реализации. Ничего лишнего я не просил, а указать на то как реализовать заполнение спиннера через массив, или тот же List но из другого класса.
Кроме того, мой адаптер это не просто строчки кода, это как раз кастомная реализация заполнения List массивом нужных спиннеров, проблема только в том, что он выкидывает exception и я не пойму почему.
Читай http://stackoverflow.com/quest... -list-view
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 15
10.03.2016, 16:36  [ТС]
Цитата Сообщение от Bend3r Посмотреть сообщение
Я думаю это стоит прочитать всем - http://developer.android.com/i... apter.html
Кстати, по вашей ссылке нашел нужный, как мне кажется метод
static ArrayAdapter<CharSequence> createFromResource(Context context, int textArrayResId, int textViewResId)
Creates a new ArrayAdapter from external resources. Только что то я не так делаю в нем.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.03.2016, 16:38
Цитата Сообщение от Bend3r Посмотреть сообщение
С чего вы решили что нельзя? Можно.
можно примерчик как в стандартный ArrayAdapter передать список c Integer-ами ) буду благодарен
0
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
10.03.2016, 17:27
Цитата Сообщение от Паблито Посмотреть сообщение
можно примерчик как в стандартный ArrayAdapter передать список c Integer-ами ) буду благодарен
Java
1
2
Integer[] item = new Integer[]{1,2,3,4};
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,android.R.layout.simple_spinner_item, item);
Добавлено через 7 минут
Цитата Сообщение от Miki48RU Посмотреть сообщение
Кстати, по вашей ссылке нашел нужный, как мне кажется метод
static ArrayAdapter<CharSequence> createFromResource(Context context, int textArrayResId, int textViewResId)
Creates a new ArrayAdapter from external resources. Только что то я не так делаю в нем.
Вот что принимает метод createFromResource.

context Context: The application's environment.
textArrayResId int: The identifier of the array to use as the data source.
textViewResId int: The identifier of the layout used to create views.


Возможно ты неправильные параметры даешь. Можно get(i) возвращает object, и тебе еще нужно кастить в int. Проще воспользуйся двумя строчками выше, передавая вот этим образом getResources().getStringArray(id) в третий параметр твой массив который сидит в string.xml. Я думаю эффект будет тот же самый.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2016, 17:27
Помогаю со студенческими работами здесь

Не получается создать файл, сохранением массива в файле и заполнение массива значениями из файла
Здравствуйте. Я уже второй день пытаюсь решить проблему с созданием файла, сохранением массива в файле и заполнением массива информацией из...

Заполнение одномерного массива средними значениями другого массива
Как в маткаде заполнить одномерный массив средними значениями другого двумерного массива?

Размерность массива, заполнение массива случайными числами
В функции обработки нажатия кнопки:ввести размерность массива,создать двумерный динамический массив,вызвать функцию, которая заполнит...

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include &quot;stdafx.h&quot; #include &quot;locale.h&quot; #include &quot;stdlib.h&quot; #include &quot;math.h&quot; void main() { setlocale(LC_ALL,&quot;rus&quot;); int...

Заполнение динамического массива из файла, где в первой строке указан размер массива, а вторая строка содержит значения
Заполнение динамического массива из файла, где в первой строке указано какой размер n массива,а вторая строка содержит допустим 100...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru