Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created December 2, 2025 13:02
Show Gist options
  • Select an option

  • Save sunmeat/581ff4bb88c6d17a61207676f4c222c5 to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/581ff4bb88c6d17a61207676f4c222c5 to your computer and use it in GitHub Desktop.
ListView + SimpleAdapter task KNP221
Розробити 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