278
Вывод списка с данными
обходимое, чтобы приступить к реализации отображения данных, вернемся
к нашим новым представлениям списка.
з
аПолнение
Представления
сПиска
В настоящее время мы не получаем данных ни из сетевой службы, ни из фай
-
ловой системы. (Об этом мы поговорим в следующих главах!) Поэтому исполь
-
зуем пока статические данные в классе, чтобы с их помощью продемонстриро
-
вать, как правильно заполнять представления списков в Android и iOS. Начнем
с Android.
Android
Итак, у нас есть экземпляр
RecyclerView
, и мы готовы пустить его в дело, но, пока
нет данных, мы ничего не увидим. Исправим эту проблему. Временно опреде
-
лим некоторые данные прямо в коде, в виде статической переменной класса,
но, ради всего святого, никогда не делайте этого в промышленном коде
. И не вол
-
нуйтесь, мы ликвидируем данный недостаток позже.
Вот несколько примеров книг – вскоре мы используем аналогичную струк
-
туру в iOS:
Java
public class Book {
public static final Book[] SAMPLE_DATA = {
new Book("Dragons Love Tacos",
new String[]{"Adam Rubin", "Daniel Salmieri"},
"978-0803736801", 40, true),
new Book("Fight Club",
new String[]{"Chuck Palahniuk"},
"978-0393039764", 208, true),
new Book("2001: A Space Odyssey",
new String[]{"Arthur C. Clarke"},
"978-0451457998", 296, true),
new Book("Ulysses",
new String[]{"James Joyce"},
"978-1420953961", 682, true),
new Book("Catch-22",
new String[]{"Joseph Heller"},
"978-1451626650", 544, true),
new Book("The Stand",
new String[]{"Stephen King"},
"978-0307947307", 1200, true),
new Book("On The Road",
new String[]{"Jack Kerouac"},
"978-0143105466", 416, true),
new Book("Heart of Darkness",
new String[]{"Joseph Conrad"},
"978-1503275928", 78, true),
Заполнение представления списка
279
new Book("A Brief History of Time",
new String[]{"Stephen Hawking"},
"978-0553380163", 212, false),
new Book("Dispatches",
new String[]{"Michael Herr"},
"978-0679735250", 272, false),
new Book("Harry Potter and Prisoner of Azkaban",
new String[]{"J.K. Rowling"},
"978-0439136365", 448, true)
};
private final String mTitle;
private final String[] mAuthors;
private final String mIsbn;
private final int mPageCount;
private final boolean mIsFiction;
public Book(String title, String[] authors, String isbn, int pageCount,
boolean isFiction) {
mTitle = title;
mAuthors = authors;
mIsbn = isbn;
mPageCount = pageCount;
mIsFiction = isFiction;
}
public Book() {}
public String getTitle() {
return mTitle;
}
public String[] getAuthors() {
return mAuthors;
}
public String getIsbn() {
return mIsbn;
}
public int getPageCount() {
return mPageCount;
}
public boolean isFiction() {
return mIsFiction;
}
}
Kotlin
data class Book(val title: String, val authors: List,
val isbn: String, val pageCount: Int,
val isFiction: Boolean) {
constructor() : this("", mutableListOf(), "", 0, false) {
// ничего не делает
}
280
Вывод списка с данными
companion object {
val SAMPLE_DATA = arrayOf(
Book("Fight Club", listOf("Chuck Palahniuk"),
"978-0393039764", 208, true),
Book("2001: A Space Odyssey",
listOf("Arthur C. Clarke"), "978-0451457998", 296, true),
Book("Ulysses",
listOf("James Joyce"), "978-1420953961", 682, true),
Book("Catch-22",
listOf("Joseph Heller"), "978-1451626650", 544, true),
Book("The Stand",
listOf("Stephen King"), "978-0307947307", 1200, true),
Book("On The Road",
listOf("Jack Kerouac"), "978-0143105466", 416, true),
Book("Heart of Darkness",
listOf("Joseph Conrad"), "978-1503275928", 78, true),
Book("A Brief History of Time",
listOf("Stephen Hawking"), "978-0553380163", 212, false),
Book("Dispatches",
arrayOf("Michael Herr"), "978-0679735250", 272, false),
Book("Harry Potter and Prisoner of Azkaban",
listOf("J.K. Rowling"), "978-0439136365", 448, true),
Book("Dragons Love Tacos",
listOf("Adam Rubin", "Daniel Salmieri"), "978-0803736801",
40, true))
}
}
Это наши данные. Имейте в виду, что данные для вывода в представлении
списка могут меняться с течением времени – мы могли бы получать их с уда
-
ленного сервера, а затем показывать кешированную версию из локальной базы
данных. Также у нас может иметься служба поиска, позволяющая сортировать
или фильтровать данные. По этой и другим причинам источник данных не
подключен напрямую к
RecyclerView
, а управляется специальным компонен
-
том, образующим мост между пользовательским интерфейсом и данными,
который часто называют
Do'stlaringiz bilan baham: |