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

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

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

Author24 — интернет-сервис помощи студентам
Привет! Помогите решить проблему. Есть класс в котором настроен 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...

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

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

19
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
25.10.2017, 22:29 2
Цитата Сообщение от korolevsky Посмотреть сообщение
эта конструкция не катит.
Ну потому что имя из модели получается методом getName(). При условии, конечно, что этот name как-то туда уже попал до этого.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 10:59  [ТС] 3
Цитата Сообщение от 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 4
Да потому, что модель надо инициализировать, закинуть туда имя setName() и только потом достать его getName().
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 11:36  [ТС] 5
Цитата Сообщение от ExFau$t Посмотреть сообщение
Да потому, что модель надо инициализировать, закинуть туда имя setName() и только потом достать его getName().
У меня же заранее заполненный arraylist... мне нужно только извлекать... можете привести пример на моем коде? Честно, совсем запутался
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
26.10.2017, 11:49 6
Цитата Сообщение от korolevsky Посмотреть сообщение
на моем коде
на каком твоем коде?
там нет кода, только какой-то стрёмный класс Color, автор которого не знает про примитивные типы и о том, что 80% того что там напедалировано, можно сделать с помощью стардартного класса Color
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 11:53 7
Пример чего? Ты даже не можешь объяснить, что тебе нужно извлекать. Ты спросил про Name - я ответил. Я так понимаю нужно использовать другой конструктор, чтобы извлекать данные помимо хардкодного листа.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 12:24  [ТС] 8
Цитата Сообщение от 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 9
Ты вообще внимательно читаешь? Ладно давай так: у тебя здесь, ну скажем так, папка с переменными, они как и обычные переменные должны быть чему-нибудь инициализированы, чтобы их можно было получить. Конструктор внизу класса ни к селу, ни к городу, чтобы данные можно было извлекать, его надо привести к виду верхнего конструктора, то есть добавить методы setName("1000") и т.п.

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

Не по теме:

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

0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 12:42  [ТС] 10
Цитата Сообщение от 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 11
Цитата Сообщение от 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  [ТС] 12
Цитата Сообщение от Pablito Посмотреть сообщение
так на Swift или все-таки Obj-C ?
то arrayColors, потом colorsArray...
На Swift. Здесь нет шаблона вставки кода свифт, поэтому применил obj c. Сокращенный пример просто писал на скорую руку, поэтому назвал по другому. Да, везде colorsArray
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 13:27 13
Цитата Сообщение от 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  [ТС] 14
Спасибо! Можете посмотреть на такую конструкцию (пример):
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 15
Скопировать строки с 17 по 25 в активити, с 2 по 13 вынести в отдельный класс.
Ты бы хоть пару уроков для начинающих пролистал.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 15:21  [ТС] 16
Так я читаю и задаю вопросы. ) Делаю строго по правилам. Создал отдельный файл с классом (не хочу захламлять активити ибо в списке будет 350 значений. В активити пытаюсь создать экземпляр класса
Java
1
Book book = new Book();
ОШИБКА. Спасибо за Ваше терпение!
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
26.10.2017, 15:34 17
Какая ошибка и что в классе?
Если тот же из прошлого сообщения, то в конструктор надо параметры передать, как это сделано в строках 19-21.
0
0 / 0 / 0
Регистрация: 03.01.2015
Сообщений: 57
26.10.2017, 15:45  [ТС] 18
Использую пример 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 19
Ну так и засунь эти параметры в конструктор внутри класса, а поля убери.
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  [ТС] 20
Если я уберу поля, то как тогда будет работать эта часть кода?
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
26.10.2017, 20:01
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru