Closed6

android-room-with-a-view-kotlin に削除処理を追加する

tkttkt

そのままだと、クリックした item の情報が取れなさそう

tkttkt

ただ、構成が微妙に違ってそのまま適用できなさそう(よーわからん)

tkttkt
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

}
tkttkt
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)
            }
        }
    }

ここを

https://qiita.com/que9/items/52725c3caf33f2a9b44e#listadapterとviewholder
ここみたいに binding を使って書き換えるっぽい?

このスクラップは2020/12/25にクローズされました