前提・実現したいこと
TextViewとButtonがあるListViewを作成しました。
ボタンが押された時に何かの処理をしたいと考え、ボタンにリスナを付けたのですが、NullPointerExceptionのエラーが発生しました。
動的に生成されるものに対して、このようなリスナの付け方はできないということでしょうか?
また、どのように実装すればボタンにリスナを付けれるのでしょうか?
よろしくおねがいします。
該当のソースコード
MainActivity.kt
kotlin
1class MainActivity : AppCompatActivity() { 2 3 override fun onCreate(savedInstanceState: Bundle?) { 4 super.onCreate(savedInstanceState) 5 setContentView(R.layout.activity_main) 6 7 var itemList : MutableList<String> = mutableListOf("アイテム1", "アイテム2", "アイテム3") 8 val lv = findViewById<ListView>(R.id.lv) 9 val adapter = ArrayAdapter(applicationContext, R.layout.row, R.id.tvItemName, itemList) 10 lv.adapter = adapter 11 12 val button = findViewById<Button>(R.id.lvButton) 13 button.setOnClickListener(object: View.OnClickListener{ 14 override fun onClick(v: View?) { 15 Toast.makeText(applicationContext, "hoge", Toast.LENGTH_SHORT).show() 16 } 17 }) 18 } 19}
activity_main.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<ListView 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:id="@+id/lv" 5 android:layout_height="match_parent" 6 android:layout_width="match_parent"> 7</ListView>
row.xml
xml
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="horizontal" android:layout_width="match_parent" 4 android:layout_height="match_parent"> 5 6 <TextView 7 android:id="@+id/tvItemName" 8 android:layout_width="wrap_content" 9 android:layout_height="wrap_content" /> 10 11 <Button 12 android:id="@+id/lvButton" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:text="ボタン" /> 16 17</LinearLayout>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/20 15:49
2020/02/21 03:09 編集
2020/02/21 01:19
2020/02/21 08:48
2020/02/21 09:43
2020/02/21 13:29
2020/02/21 18:03
2020/02/21 21:43
2020/02/22 03:45