1
0
Fork 0

Use article cards list in adapter

This commit is contained in:
Alex Kotov 2021-08-17 06:11:17 +05:00
parent 3e3f53accd
commit 2a40bb7d97
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
3 changed files with 43 additions and 9 deletions

View file

@ -0,0 +1,3 @@
package com.causa_arcana
class ArticleCard(val id: ArticleId, val title: String, val summary: String)

View file

@ -9,6 +9,36 @@ import androidx.recyclerview.widget.RecyclerView
class ArticleCardsListRecyclerAdapter(private val onItemClick: () -> Unit) :
RecyclerView.Adapter<ArticleCardsListRecyclerAdapter.ViewHolder>()
{
private val articleCardsList = listOf(
ArticleCard(
ArticleId(2021u, 8u, 6u, "writing-about-it"),
"Почему сложно писать о передовых информационных технологиях?",
"""
Однажды мы выпустили статью Децентрализованные сервисы против распределённых, где
предприняли попытку подтолкнуть читателей к более обдуманному отношению к терминам,
таким как централизованный, децентрализованный и распределённый. Это имее...
""".replace("\\s+".toRegex(), " "),
),
ArticleCard(
ArticleId(2020u, 6u, 4u, "decentralized-vs-distributed"),
"Децентрализованные сервисы против распределённых",
"""
Более правильная, но менее известная схема, показывающая разницу между
централизованными, децентрализованными и распределёнными сетями. В данной статье я
расскажу про два подхода к созданию сервисов, не зависящих от единственно...
""".replace("\\s+".toRegex(), " "),
),
ArticleCard(
ArticleId(2021u, 7u, 28u, "yggdrasil"),
"Заметки об Yggdrasil: качество кода, безопасность, DNS",
"""
Сейчас сложно продвигать сеть Yggdrasil для массового использования. Она сложна для
обычного пользователя, поскольку требует настройки. Она не даёт новых возможностей
обхода наиболее часто применяемых механизмов государственных блокировок Интернет...
""".replace("\\s+".toRegex(), " "),
),
)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context)
@ -17,25 +47,26 @@ class ArticleCardsListRecyclerAdapter(private val onItemClick: () -> Unit) :
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.titleTextView?.text = when (position) {
0 -> "Foo"
1 -> "Bar"
2 -> "Car"
else -> null
}
val articleCard = articleCardsList[position]
holder.titleTextView?.text = articleCard.title
holder.summaryTextView?.text = articleCard.summary
}
override fun getItemCount(): Int {
return 3
return articleCardsList.size
}
class ViewHolder(itemView: View, private val onClick: () -> Unit):
RecyclerView.ViewHolder(itemView)
{
var titleTextView: TextView? = null
var summaryTextView: TextView? = null
init {
titleTextView = itemView.findViewById(R.id.rvitem_article_card__title_text_view)
titleTextView = itemView.findViewById(R.id.rvitem_article_card__title_text_view)
summaryTextView = itemView.findViewById(R.id.rvitem_article_card__summary_text_view)
itemView.setOnClickListener { onClick() }
}
}

View file

@ -27,7 +27,7 @@
android:id="@+id/rvitem_article_card__summary_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a massa nulla."/>
tools:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a massa nulla."/>
</LinearLayout>