Created
December 2, 2025 13:02
-
-
Save sunmeat/581ff4bb88c6d17a61207676f4c222c5 to your computer and use it in GitHub Desktop.
ListView + SimpleAdapter task KNP221
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Розробити Android-додаток з одним екраном, на якому буде відображений список чатів, максимально схожий на список діалогів у Telegram. | |
| Вимоги до зовнішнього вигляду одного елемента списку (як у Telegram): | |
| - Аватарка (кругла фотографія або кольоровий круг з ініціалами) — зліва | |
| - Ім’я співрозмовника або назва чату — жирним шрифтом | |
| - Останнє повідомлення — звичайним шрифтом, сірого кольору | |
| - Час останнього повідомлення — у правому верхньому куті | |
| - Якщо є непрочитані повідомлення — синій кружок з числом праворуч від імені | |
| - Якщо повідомлення прочитане — галочка (або дві галочки, якщо доставлено/прочитано) біля останнього повідомлення | |
| Технічні вимоги: | |
| - Використати SimpleAdapter (без RecyclerView, без кастомних адаптерів з ViewHolder). | |
| - Створити власний layout для одного рядка списку — наприклад, R.layout.item_chat.xml | |
| - Дані для списку мають бути в коді (масив або List<Map<String, Object>>) | |
| Кожна Map повинна містити такі ключі: | |
| "avatar" — int (посилання на drawable, наприклад R.drawable.avatar1, або 0 якщо немає) | |
| "name" — String (ім’я або назва чату) | |
| "last_message" — String | |
| "time" — String (наприклад "14:35", "Вчора", "01 гру") | |
| "unread_count" — Integer (кількість непрочитаних, 0 — якщо немає) | |
| "is_sent" — Boolean (чи відправлено від нас) | |
| "is_read" — Boolean (чи прочитано отримувачем) | |
| У layout елемента списку: | |
| - Використовуйте ImageView для аватарки (з android:scaleType="centerCrop" і круглою формою через shape або CardView + app:cardCornerRadius) | |
| - TextView для імені, останнього повідомлення, часу | |
| - Окремий TextView або MaterialButton (з круглою формою) для лічильника непрочитаних | |
| - Додайте іконку галочки (одна чи дві) залежно від статусу повідомлення | |
| У коді SimpleAdapter правильно передати масив from і to, щоб дані відобразилися у потрібних View. | |
| Приклад даних для одного рядка списку: | |
| HashMap<String, Object> chat = new HashMap<>(); | |
| chat.put("avatar", R.drawable.avatar_petya); | |
| chat.put("name", "Петро Іванов"); | |
| chat.put("last_message", "Ок, домовились на 18:00"); | |
| chat.put("time", "14:35"); | |
| chat.put("unread_count", 3); | |
| chat.put("is_sent", true); | |
| chat.put("is_read", false); | |
| Приклади коду на SimpleAdapter є в 3 презентації. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment