〈kotlin〉Android studio使い方メモ15:RecyclerView(タッチイベント追加)

金宏和實さんの「作ればわかる!Androidプログラミング kotlin対応」を参考に
Android studioでkotlinを使ってAndroidアプリ作成。

RecyclerViewの使い方をまとめたものの続き。
〈kotlin〉Android studio使い方メモ10:RecyclerView - ゆるプログラミング日記

RecyclerViewのデータをタップすると編集画面に遷移してデータ編集できるようにする。
(編集画面には元々入っていたデータがあらかじめ入っていて欲しい。)

データの受け渡し

画面の受け渡しにIntentを使用し、
これを合わせて画面の中の値をputExtraで渡す。

val intent = Intent(this, EditActivity::class.java)
intent.putExtra("key",  value)

データを受け取る側では、getExtraを使用する。

val getId = intent.getLongExtra("key")
//Longの部分はデータの型にあわせて変更する

実装したコード

recyclerviewのデータのタップと組み合わせて書いてみる。

RecyclerView.adapter継承クラス内

override fun onBindViewHolder(holder:ViewHolder, position:Int){
    //省略
    holder.itemView.setOnClickListener{
        val intent = Intent(it.context, EditActivity::class.java)
        intent.putExtra("id", todoData?.id)
        it.context.startActivity(intent)
    }
}

EditActivity.kt onCreate()内

val getId = intent.getLongExtra("id", 0L)
//0Lはデフォルト値

val data = DataList[getId]
//受け取ったidを利用してデータリストの中からidと一致するデータを抽出する
//dataはtextという変数を1つ持つクラスのオブジェクトとする

val editText = findViewById<TextView>(R.id.textview)
editText.setText(data?.text.toString())
//編集画面のeditText内に取得したtextをセットする