智能投射到 'Spinner!' 是不可能的。因为 'spinnertype' 是一个可变的 属性,此时可能已经更改
Smart cast to 'Spinner!' is impossible. because 'spinnertype' is a mutable property that could have been changed by this time
我是第一次使用 kotlin 制作 android 应用,
我想问问大家为什么'spinnerType.onItemSelectedListener'这一行出错了。
这是我的AddActivity.kt。
override fun onCreate(savedInstanceState: Bundle?) {
spinnerType = findViewById(R.id.spinner_type)
spinnerCategory = findViewById(R.id.spinner_category)
editTextAmount = findViewById(R.id.edit_text_amount)
editTextNote = findViewById(R.id.edit_text_note)
// binding adapter and listener
expendCategoryList = object : ArrayList<String>() {
init {
add("aaa")
add("bbb")
add("ccc")
}
}
incomeCategoryList = object : ArrayList<String>() {
init {
add("dd")
add("ee")
}
}
bindSpinnerCategoryData(true)
// bind event listener about spinnerType
spinnerType.onItemSelectedListener
}
private fun bindSpinnerCategoryData(isExpend: Boolean) {
val arrayAdapter: ArrayAdapter<String>
val targetList = if (isExpend) expendCategoryList else incomeCategoryList
val list = ArrayList(targetList)
list.add("add new category...")
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, list)
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// new data adpater binding aboutspinnerCategory
spinnerCategory.setAdapter(arrayAdapter)
}
onItemSelectedListener 未正确实现,尝试以下代码可能会解决您的问题
spinnerType?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}
我是第一次使用 kotlin 制作 android 应用, 我想问问大家为什么'spinnerType.onItemSelectedListener'这一行出错了。
这是我的AddActivity.kt。
override fun onCreate(savedInstanceState: Bundle?) {
spinnerType = findViewById(R.id.spinner_type)
spinnerCategory = findViewById(R.id.spinner_category)
editTextAmount = findViewById(R.id.edit_text_amount)
editTextNote = findViewById(R.id.edit_text_note)
// binding adapter and listener
expendCategoryList = object : ArrayList<String>() {
init {
add("aaa")
add("bbb")
add("ccc")
}
}
incomeCategoryList = object : ArrayList<String>() {
init {
add("dd")
add("ee")
}
}
bindSpinnerCategoryData(true)
// bind event listener about spinnerType
spinnerType.onItemSelectedListener
}
private fun bindSpinnerCategoryData(isExpend: Boolean) {
val arrayAdapter: ArrayAdapter<String>
val targetList = if (isExpend) expendCategoryList else incomeCategoryList
val list = ArrayList(targetList)
list.add("add new category...")
arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, list)
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// new data adpater binding aboutspinnerCategory
spinnerCategory.setAdapter(arrayAdapter)
}
onItemSelectedListener 未正确实现,尝试以下代码可能会解决您的问题
spinnerType?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
}
}