我的 ArrayAdapter 给了我空值 - Kotlin
My ArrayAdapter gives me null value - Kotlin
我正在尝试使用 kotlin android 应用程序在 textview 中显示我的 sqlite 数据。但我对此有误。当我 运行 我的应用程序崩溃时。有什么问题?
这是我在 dbhelper 中的 read_data 函数:
fun read_data():MutableList<Kullanici> {
val userList:MutableList<Kullanici> = ArrayList()
val db = this.readableDatabase
val query = "SELECT * FROM $table_name"
val result = db.rawQuery(query,null)
if(result.moveToFirst()) {
do {
val kullanici = Kullanici()
kullanici.id = result.getString(result.getColumnIndexOrThrow(column_id)).toInt()
kullanici.hamle = result.getString(result.getColumnIndexOrThrow(column_hamle)).toInt()
kullanici.sure = result.getString(result.getColumnIndexOrThrow(column_sure)).toInt()
userList.add(kullanici)
}while (result.moveToNext())
}
result.close()
db.close()
return userList
}
这是我的主要活动:
override fun onCreate(savedInstanceState: Bundle?) {
val lv = findViewById<ListView>(R.id.listView)
val db = DataBaseHelper(this)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportActionBar?.hide()
val kolay_butonu = findViewById<Button>(R.id.button2)
kolay_butonu.setOnClickListener {
val intent = Intent(this, Kolay::class.java)
startActivity(intent)
}
val liste = db.read_data()
val adapter_: ArrayAdapter<*>
adapter_ = ArrayAdapter(this, android.R.layout.simple_list_item_1, liste)
lv.adapter = adapter_
}
最后是我遇到的错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
你应该在 setContentView
之后调用 findViewById
。视图仅在调用 setContentView
时膨胀,因此当您在调用 setContentView
之前找到视图时,它将 return null.
移动这条线
val lv = findViewById<ListView>(R.id.listView)
在setContentView
之后
我正在尝试使用 kotlin android 应用程序在 textview 中显示我的 sqlite 数据。但我对此有误。当我 运行 我的应用程序崩溃时。有什么问题?
这是我在 dbhelper 中的 read_data 函数:
fun read_data():MutableList<Kullanici> {
val userList:MutableList<Kullanici> = ArrayList()
val db = this.readableDatabase
val query = "SELECT * FROM $table_name"
val result = db.rawQuery(query,null)
if(result.moveToFirst()) {
do {
val kullanici = Kullanici()
kullanici.id = result.getString(result.getColumnIndexOrThrow(column_id)).toInt()
kullanici.hamle = result.getString(result.getColumnIndexOrThrow(column_hamle)).toInt()
kullanici.sure = result.getString(result.getColumnIndexOrThrow(column_sure)).toInt()
userList.add(kullanici)
}while (result.moveToNext())
}
result.close()
db.close()
return userList
}
这是我的主要活动:
override fun onCreate(savedInstanceState: Bundle?) {
val lv = findViewById<ListView>(R.id.listView)
val db = DataBaseHelper(this)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportActionBar?.hide()
val kolay_butonu = findViewById<Button>(R.id.button2)
kolay_butonu.setOnClickListener {
val intent = Intent(this, Kolay::class.java)
startActivity(intent)
}
val liste = db.read_data()
val adapter_: ArrayAdapter<*>
adapter_ = ArrayAdapter(this, android.R.layout.simple_list_item_1, liste)
lv.adapter = adapter_
}
最后是我遇到的错误:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)' on a null object reference
你应该在 setContentView
之后调用 findViewById
。视图仅在调用 setContentView
时膨胀,因此当您在调用 setContentView
之前找到视图时,它将 return null.
移动这条线
val lv = findViewById<ListView>(R.id.listView)
在setContentView