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

Заполнение ListView данными из ArrayList

25.10.2017, 21:04. Показов 2025. Ответов 19

Студворк — интернет-сервис помощи студентам
Привет! Помогите решить проблему. Есть класс в котором настроен ArrayList:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
public class Colors {
 
    String name;
    Integer r;
    Integer g;
    Integer b;
    String hex;
    String cmyk;
    Boolean luminous;
    Boolean metallic;
 
    public Colors (String name, Integer r, Integer g, Integer b, String hex, String cmyk, Boolean luminous, Boolean metallic) {
        setName(name);
        setR(r);
        setG(g);
        setB(b);
        setHex(hex);
        setCmyk(cmyk);
        setLuminous(luminous);
        setMetallic(metallic);
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getName() {
        return name;
    }
 
    public void setR(Integer r) {
        this.r = r;
    }
 
    public Integer getR() {
        return r;
    }
 
    public void setG(Integer g) {
        this.g = g;
    }
 
    public Integer getG() {
        return g;
    }
 
    public void setB(Integer b) {
        this.b = b;
    }
 
    public Integer getB() {
        return b;
    }
 
    public void setHex(String hex) {
        this.hex = hex;
    }
 
    public String getHex() {
        return hex;
    }
 
    public void setCmyk(String cmyk) {
        this.cmyk = cmyk;
    }
 
    public String getCmyk() {
        return cmyk;
    }
 
    public void setLuminous(Boolean luminous) {
        this.luminous = luminous;
    }
 
    public Boolean getLuminous() {
        return luminous;
    }
 
    public void setMetallic(Boolean metallic) {
        this.metallic = metallic;
    }
 
    public Boolean getMetallic() {
        return metallic;
    }
 
    List<Colors> colorsArray = new ArrayList<>();
 
    public Colors() {
        colorsArray.add(new Colors("1000", 205, 186, 136, "#cdba88", "5, 10, 40, 10", false, false));
        colorsArray.add(new Colors("1001", 208, 176, 132, "#d0b084", "5, 20, 40, 10", false, false));
        colorsArray.add(new Colors("1002", 210, 170, 109, "#d2aa6d", "5, 20, 50, 10", false, false));
    }
 
}
В активити есть listview с настроенными textview, imageview и т.д. listview настроилась, ячейки отображаются в полном объеме arraylist:
Java
1
2
3
4
@Override
        public int getCount() {
            return colors. colorsArray.size();
        }
Как теперь заполнить ячейки соответствующими данными? Как получить доступ к, например, name и т.д. Должно быть что-то на подобии этого:
Java
1
textView_name.setText(colors.name(i));
но эта конструкция не катит.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2017, 21:04
Ответы с готовыми решениями:

Заполнение ArrayList данными из SQLite
Доброго времени суток! Есть заполняющаяся пользователем база данных mytable. В MainActivity необходимо выводить все записи. Для этого...

Заполнение ListView данными класса (новости)
public class News { public string Author { get; set; } public string Text{get;set;} ...

Выполнить запрос к БД при нажатии на элемент в ListView и заполнить данными другой ListView
Подскажите пожалуйста как сделать в RadStudio, что бы при нажатии на одну строку выполнялся запрос в БД, и результат записывался в чистый...

19
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
25.10.2017, 22:29
Цитата Сообщение от korolevsky Посмотреть сообщение
эта конструкция не катит.
Ну потому что имя из модели получается методом getName(). При условии, конечно, что этот name как-то туда уже попал до этого.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 10:59  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Ну потому что имя из модели получается методом getName(). При условии, конечно, что этот name как-то туда уже попал до этого.
С этим согласен, но конструкция с getName() тоже не дает результата. Есть предчувствие, что нужно циклом пробежаться по Colors и потом только извлечь данные, но не пойму как это сделать... А может я и не прав. Подскажите, пожалуйста.

Добавлено через 3 часа 27 минут
Хоть ты тресни, но colors.getName возвращает null
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 11:19
Да потому, что модель надо инициализировать, закинуть туда имя setName() и только потом достать его getName().
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 11:36  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Да потому, что модель надо инициализировать, закинуть туда имя setName() и только потом достать его getName().
У меня же заранее заполненный arraylist... мне нужно только извлекать... можете привести пример на моем коде? Честно, совсем запутался
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.10.2017, 11:49
Цитата Сообщение от korolevsky Посмотреть сообщение
на моем коде
на каком твоем коде?
там нет кода, только какой-то стрёмный класс Color, автор которого не знает про примитивные типы и о том, что 80% того что там напедалировано, можно сделать с помощью стардартного класса Color
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 11:53
Пример чего? Ты даже не можешь объяснить, что тебе нужно извлекать. Ты спросил про Name - я ответил. Я так понимаю нужно использовать другой конструктор, чтобы извлекать данные помимо хардкодного листа.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 12:24  [ТС]
Цитата Сообщение от Pablito Посмотреть сообщение
автор которого не знает
Именно для этого и существуют форумы, чтобы авторы, которые не знают, могли спрашивать у тех, кто знает. Наверняка когда-то Вы тоже что-то не знали.

Добавлено через 7 минут
Цитата Сообщение от ExFau$t Посмотреть сообщение
Пример чего? Ты даже не можешь объяснить, что тебе нужно извлекать.
В классе я хочу разместить заранее заполненный arraylist. На основании его в активити буду формировать listview, в каждую ячейку которого будет выводится информация String name;
Integer r;
Integer g;
Integer b;
String hex;
String cmyk;
Boolean luminous;
Boolean metallic; в соответствующие textview. В активити создаю экземпляр класса
Java
1
Colors colors = new Colors();
. Потом отображаю listview соответствующей длины:
Java
1
colors.arrayColors.size(i)
. Не понимаю как можно извлечь name, r и т.д. в соответствующую порядковому номеру ячейку listview
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 12:35
Ты вообще внимательно читаешь? Ладно давай так: у тебя здесь, ну скажем так, папка с переменными, они как и обычные переменные должны быть чему-нибудь инициализированы, чтобы их можно было получить. Конструктор внизу класса ни к селу, ни к городу, чтобы данные можно было извлекать, его надо привести к виду верхнего конструктора, то есть добавить методы setName("1000") и т.п.

Добавлено через 1 минуту

Не по теме:

Хотя это всё делается совершенно по-другому...

0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 12:42  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Хотя это всё делается совершенно по-другому...
Подскажите, пожалуйста, если все можно сделать проще. Ранее я писал на Swift, там все проще. Создал отдельный класс с массивом кортежей, сокращенный пример:
Objective-C
1
let colorsArray: [String: name, Int: r, Int: g] = [("1000", 1, 2), ("2000", 2, 3)]
и т.д. Ну а далее тупо стучался к значениям по именам. Может на Java тоже все можно сделать проще?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.10.2017, 12:58
Цитата Сообщение от korolevsky Посмотреть сообщение
Ранее я писал на Swift
Цитата Сообщение от korolevsky Посмотреть сообщение
let colorsArray: [String: name, Int: r, Int: g] = [("1000", 1, 2), ("2000", 2, 3)]
так на Swift или все-таки Obj-C ?

то arrayColors, потом colorsArray...
Java
1
colors.colorsArray.get(i).getName();
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 13:06  [ТС]
Цитата Сообщение от Pablito Посмотреть сообщение
так на Swift или все-таки Obj-C ?
то arrayColors, потом colorsArray...
На Swift. Здесь нет шаблона вставки кода свифт, поэтому применил obj c. Сокращенный пример просто писал на скорую руку, поэтому назвал по другому. Да, везде colorsArray
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 13:27
Цитата Сообщение от korolevsky Посмотреть сообщение
let colorsArray: [String: name, Int: r, Int: g] = [("1000", 1, 2), ("2000", 2, 3)]
Java
1
Сolors colorsArray = new Colors("1000",1,2);
Сложно?
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 15:04  [ТС]
Спасибо! Можете посмотреть на такую конструкцию (пример):
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
import java.util.*;  
class Book {  
int id;  
String name,author,publisher;  
int quantity;  
public Book(int id, String name, String author, String publisher, int quantity) {  
    this.id = id;  
    this.name = name;  
    this.author = author;  
    this.publisher = publisher;  
    this.quantity = quantity;  
}  
}  
public class ArrayListExample {  
public static void main(String[] args) {  
    //Creating list of Books  
    List<Book> list=new ArrayList<Book>();  
    //Creating Books  
    Book b1=new Book(101,"Let us C","Yashwant Kanetkar","BPB",8);  
    Book b2=new Book(102,"Data Communications & Networking","Forouzan","Mc Graw Hill",4);  
    Book b3=new Book(103,"Operating System","Galvin","Wiley",6);  
    //Adding Books to list  
    list.add(b1);  
    list.add(b2);  
    list.add(b3);  
    //Traversing list  
    for(Book b:list){  
        System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity);  
    }  
}  
}
Думаю, что она здорово подходит к решению моей проблемы. Как в этом случае из активити получить доступ к list?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 15:09
Скопировать строки с 17 по 25 в активити, с 2 по 13 вынести в отдельный класс.
Ты бы хоть пару уроков для начинающих пролистал.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 15:21  [ТС]
Так я читаю и задаю вопросы. ) Делаю строго по правилам. Создал отдельный файл с классом (не хочу захламлять активити ибо в списке будет 350 значений. В активити пытаюсь создать экземпляр класса
Java
1
Book book = new Book();
ОШИБКА. Спасибо за Ваше терпение!
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 15:34
Какая ошибка и что в классе?
Если тот же из прошлого сообщения, то в конструктор надо параметры передать, как это сделано в строках 19-21.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 15:45  [ТС]
Использую пример Book, отрабатываю все на нем. Ошибка: Book() in Book cannot be applied to: далее идет перечисление параметров конструктора. Неужели все параметры для 350 значений мне нужно будет записать в конструктор???. Мне кажется, что я копаю яму в яме . У меня ведь простая задача - создать отдельный файл с классом, в котором будет только заранее наполненный ArrayList с аналогом кортежей в swift, к которому я смогу получить доступ из экземпляра класса в активити и вывести эти данные в listview. Может все нужно делать проще?
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 18:32
Ну так и засунь эти параметры в конструктор внутри класса, а поля убери.
Java
1
2
3
4
5
6
7
public Book() {  
    this.id = 101;  
    this.name = "Let us C";  
    this.author = "Yashwant Kanetkar";  
    this.publisher = "BPB";  
    this.quantity = 8;  
}
Неужели это не очевидно, и swift и java работают на ООП.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 20:01  [ТС]
Если я уберу поля, то как тогда будет работать эта часть кода?
Java
1
2
3
Book b1=new Book(101,"Let us C","Yashwant Kanetkar","BPB",8);  
    Book b2=new Book(102,"Data Communications & Networking","Forouzan","Mc Graw Hill",4);  
    Book b3=new Book(103,"Operating System","Galvin","Wiley",6);
Поля убрал и конечно теперь ничего не работает. Или я действительно туплю, или не могу уловить ход Ваших мыслей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2017, 20:01
Помогаю со студенческими работами здесь

Автоматическое заполнение ячеек данными, взятыми из одной ячейки с динамическими данными
Добрый день! Подскажите, есть ли решение моей задачи: В одной и той же ячейке постоянно (ежесекундно) меняется число (данные...

Связывание ArrayList и ListView
Добрый день. Никак не могу решить проблему. Есть ListView, есть заполненный arraylist. Как связать их? Максимум что получилось, это...

Нужно заполнить ArrayList данными с XML
Вечер добрый) Имеется текст в виде XML. Что-то типа этого: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;response&gt; ...

Как заполнить ArrayList данными столбца БД?
Подскажите как заполнить ArrayList столбцом из БД? Dim i As Integer Dim rab As New ArrayList SqlCom = New...

Заполнить ArrayList данными из столбца DataTable
Приветствую. Такой вопрос. dataGridView1.DataSource = (DataTable)dal.materialsNEW(); Есть в программе класс, который...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru