android kotlin spinner适用于API 23,但不适用于API 21
我在真正的设备SM-G900F API 23中测试了我的微调器,它工作得很好。但它在SM-N9005 API 21中不起作用。它显示微调器,但单击微调器时未显示任何选项 请参阅下面我的代码并帮助解决此问题android kotlin spinner适用于API 23,但不适用于API 21,android,kotlin,spinner,Android,Kotlin,Spinner,我在真正的设备SM-G900F API 23中测试了我的微调器,它工作得很好。但它在SM-N9005 API 21中不起作用。它显示微调器,但单击微调器时未显示任何选项 请参阅下面我的代码并帮助解决此问题 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_country_se
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_country_selector)
val spinnerOne = search_spinner1
val spinnerTwo = search_spinner2
val userDetail = UserDetail(this)
//SpinnerOne
spinnerOne.adapter = ArrayAdapter<String>(this, R.layout.item, countryArray)
//SpinnerTwo
val dataAdapter = ArrayAdapter<String>(this, R.layout.item, tempArray)
spinnerTwo.setAdapter(dataAdapter)
spinnerOne.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
countrySelected = parent?.getItemAtPosition(position).toString()
citySelected = countrySelected
if (countrySelected == "香港") {
userDetail.saveCountry(countrySelected)
userDetail.saveCity(countrySelected)
spinnerTwo.visibility = View.GONE
finish()
} else if (countrySelected == "澳門") {
userDetail.saveCountry(countrySelected)
userDetail.saveCity(countrySelected)
spinnerTwo.visibility = View.GONE
finish()
} else if (countrySelected == "台灣") {
userDetail.saveCountry(countrySelected)
tempArray.clear()
tempArray.addAll(taiwanArray)
dataAdapter.notifyDataSetChanged()
spinnerTwo.visibility = View.VISIBLE
}
}
}
//hide spinner2
spinnerTwo.visibility = View.GONE
spinnerTwo.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
citySelected = parent?.getItemAtPosition(position).toString()
if (citySelected == "選擇城市") {
} else {
userDetail.saveCity(citySelected)
finish()
}
}
}
override-fun-onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u country\u选择器)
val喷丝头=搜索喷丝头1
val喷丝头2=搜索喷丝头2
val userDetail=userDetail(此)
//喷丝头酮
spinnerOne.adapter=ArrayAdapter(this,R.layout.item,countryArray)
//喷丝头2
val dataAdapter=ArrayAdapter(this,R.layout.item,tempArray)
喷丝头2.setAdapter(数据适配器)
spinnerOne.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖未选择的乐趣(家长:AdapterView?){
}
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
countrySelected=parent?.getItemAtPosition(position).toString()
citySelected=countrySelected
如果(选定国家=”香港") {
userDetail.saveCountry(countrySelected)
userDetail.saveCity(countrySelected)
spinnerTwo.visibility=View.GONE
完成()
}如果(countrySelected=”,则为else澳門") {
userDetail.saveCountry(countrySelected)
userDetail.saveCity(countrySelected)
spinnerTwo.visibility=View.GONE
完成()
}如果(countrySelected=”,则为else台灣") {
userDetail.saveCountry(countrySelected)
tempArray.clear()
tempArray.addAll(taiwanArray)
dataAdapter.notifyDataSetChanged()
spinnerTwo.visibility=View.VISIBLE
}
}
}
//皮喷丝头2
spinnerTwo.visibility=View.GONE
spinnerTwo.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖未选择的乐趣(家长:AdapterView?){
}
覆盖已选择(父项:AdapterView?,视图:view?,位置:Int,id:Long){
citySelected=parent?.getItemAtPosition(position).toString()
如果(城市选择==”選擇城市") {
}否则{
userDetail.saveCity(citySelected)
完成()
}
}
}
下面是xml文件:
在这里输入代码我找到了答案
android:spinnerMode=“对话框”
添加此代码将适用于API 21和23两个微调器都有相同的问题?如果未选择第一个微调器选项,第二个微调器将不显示。在您提供的图像中,末尾没有微调器或箭头按钮可供其展开。您真的看到了微调器吗?