Kotlin安卓开发:组件Spinner使用
发表于更新于
广州
开发androidKotlin安卓开发:组件Spinner使用
❄️2winter本来是用得radioGroup,结果太多了,占地方,就改为了spinner。
xml:这里有一个弹出模式,一个是pop的一个是下拉。
1 2 3 4 5 6 7
| <Spinner android:id="@+id/sortSpinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:spinnerMode="dropdown">
</Spinner>
|
kotlin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| val searchSortSpinner = findViewById<Spinner>(R.id.sortSpinner) val searchSortSpinnerData = arrayOf("正题名","出版日期","作者","出版社","索取号") searchSortSpinner.adapter = searchSortSpinnerAdapter searchSortSpinner.onItemSelectedListener = object:AdapterView.OnItemSelectedListener{ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { searchSort = searchSortSpinnerData[position] }
override fun onNothingSelected(parent: AdapterView<*>?) { searchSort = searchSortSpinnerData[0] } }
|
spinner设置监听器不能向listview和其它的组件一样直接使用lambda简化
这里有的监听器目前还不支持,大部分监听接口是可以直接使用的。
这里用的是kotlin的对象表达式:java中的匿名内部类。
看看那些支持简化的监听器写法:直接用lambda代替对象表达式
1 2 3 4 5 6 7 8 9 10 11
| fab.setOnClickListener { _ ->
}
listView?.onItemClickListener = AdapterView.OnItemClickListener { _,_,position,_->
}
|
❄️2winter
ReactNative FullStack Developer
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ❄️2winter!