在 Kotlin 中从 sqliteDB 填充 Spinner 数据
Populate Spinner Data from sqliteDB in Kotlin
我有一个本地数据库 (Sqlite),我试图从一列中获取所有数据并将其填充到片段内的 Spinner 中。我正在尝试从数据库中获取数据并将它们插入到数组中,这样就很容易了,你们能帮我吗?代码示例会很有帮助。我以某种方式做到了这一点,但它没有显示字符串值,而是显示参考值,如 "com.example.newsreader.model.PreferenceM@366732f"...我不知道如何将其转换为可读的字符串。
相关代码片段
private fun preferencesInit(){
//load the preferences list
val prefList = dbHandler.getAllPrefernces(activity!!.applicationContext)
val spinner = spinner_preferences
val preferences = prefList.toTypedArray()//arrayOfNulls<String>(prefList.size)
// prefList.toArray()
val arrayAdapter = ArrayAdapter(activity!!.applicationContext, android.R.layout.simple_spinner_dropdown_item, preferences)
spinner.adapter = arrayAdapter
// spinner.setOnClickListener {
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
parent: AdapterView<*>,
view: View,
position: Int,
id: Long
) {
if (preferences.isEmpty() || preferences.size == 0){
//do nothing
}else{
Toast.makeText(
activity!!.applicationContext,"preference selected : " + preferences[position],Toast.LENGTH_SHORT).show()
checkQueryText(preferences[position].toString())
}
}
override fun onNothingSelected(parent: AdapterView<*>) {
// Code to perform some action when nothing is selected
queryTopHeadlines()
}
}
// }
}
重写您尝试放入适配器的模型 class 中的 toString 方法。
在您的 com.example.newsreader.model.PreferenceM 中,执行以下操作:
override fun toString(): String{
return <the field you want to put in your adapter>
}
我有一个本地数据库 (Sqlite),我试图从一列中获取所有数据并将其填充到片段内的 Spinner 中。我正在尝试从数据库中获取数据并将它们插入到数组中,这样就很容易了,你们能帮我吗?代码示例会很有帮助。我以某种方式做到了这一点,但它没有显示字符串值,而是显示参考值,如 "com.example.newsreader.model.PreferenceM@366732f"...我不知道如何将其转换为可读的字符串。
相关代码片段
private fun preferencesInit(){
//load the preferences list
val prefList = dbHandler.getAllPrefernces(activity!!.applicationContext)
val spinner = spinner_preferences
val preferences = prefList.toTypedArray()//arrayOfNulls<String>(prefList.size)
// prefList.toArray()
val arrayAdapter = ArrayAdapter(activity!!.applicationContext, android.R.layout.simple_spinner_dropdown_item, preferences)
spinner.adapter = arrayAdapter
// spinner.setOnClickListener {
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
parent: AdapterView<*>,
view: View,
position: Int,
id: Long
) {
if (preferences.isEmpty() || preferences.size == 0){
//do nothing
}else{
Toast.makeText(
activity!!.applicationContext,"preference selected : " + preferences[position],Toast.LENGTH_SHORT).show()
checkQueryText(preferences[position].toString())
}
}
override fun onNothingSelected(parent: AdapterView<*>) {
// Code to perform some action when nothing is selected
queryTopHeadlines()
}
}
// }
}
重写您尝试放入适配器的模型 class 中的 toString 方法。
在您的 com.example.newsreader.model.PreferenceM 中,执行以下操作:
override fun toString(): String{
return <the field you want to put in your adapter>
}