Closed6
android-room-with-a-view-kotlin に削除処理を追加する
そのままだと、クリックした item の情報が取れなさそう
これを参考に、item と Entity を紐づけて、onClick で対象の Entity がとってこれるようにしたい
ただ、構成が微妙に違ってそのまま適用できなさそう(よーわからん)
src/main/res/layout/recyclerview_item.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewModel"
type="com.tktcorporation.roomwithaview.app.viewmodel.WordViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="?android:attr/selectableItemBackground"
android:onClick="@{() -> viewModel}">
<TextView
android:id="@+id/textView"
style="@style/word_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
android:background="@android:color/holo_orange_light" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
ここで <data>
を使うには
下記の追加が必要っぽい
build.gradle
android {
+ buildFeatures.dataBinding = true
}
src/main/java/com/tktcorporation/roomwithaview/app/adapter/WordListAdapter.kt
class WordViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val wordItemView: TextView = itemView.findViewById(R.id.textView)
fun bind(text: String?) {
wordItemView.text = text
}
companion object {
fun create(parent: ViewGroup): WordViewHolder {
val view: View = LayoutInflater.from(parent.context)
.inflate(R.layout.recyclerview_item, parent, false)
return WordViewHolder(view)
}
}
}
ここを
ここみたいに binding を使って書き換えるっぽい?
できた
このスクラップは2020/12/25にクローズされました