我想显示EditText。在点击编辑文本时,Spinner应该打开。在微调器中选择项目时,应在编辑文本中填充该值。
gender.setText(AppVars.Gender.Male.name)
性别是EditText,genderSpinner是Spinner
当我点击性别编辑文本时,它会打开微调器并在选择项目时,所选项目位于编辑文本中。都好。但是,如果我没有在微调器中选择任何内容并单击屏幕上的某个位置,则不会显示微调器值,而是仅在屏幕底部显示默认值。
我想摆脱这个。
如果我点击屏幕中的任何其他位置,微调器就会消失。有可能吗?
以下是代码,
var genderInt: Int = AppVars.Gender.Male.genderVal
genderSpinner.setAdapter(ArrayAdapter<AppVars.Gender>(activity, android.R.layout.simple_spinner_item, AppVars.Gender.values()))
gender.setText(AppVars.Gender.Male.name)
genderSpinner.setSelection(AppVars.Gender.Male.genderVal)
val genderListener = object: AdapterView.OnItemSelectedListener {
override fun onNothingSelected(parent: AdapterView<*>?) {
info("Nothing selected*********************")
genderSpinner.visibility = View.INVISIBLE
}
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
val genderEnum: AppVars.Gender = parent?.getItemAtPosition(position) as AppVars.Gender
info("Item selected*********************")
genderInt = genderEnum.genderVal
gender.setText(genderEnum.name)
genderSpinner.visibility = View.INVISIBLE
}
}
genderSpinner.onItemSelectedListener = genderListener
gender.setOnClickListener {
genderSpinner.visibility = View.VISIBLE
genderSpinner.performClick()
}
答案 0 :(得分:4)
您只需使用AutoCompleteTextView
即可轻松完成所有操作,而无需使用EditText
和Spinner
。 Here you have a good tutoial和
也是documentation