Spinner和EditText-解决方案



我想显示EditText。点击编辑文本时,Spinner应打开。在微调器中选择项目时,应在编辑文本中填充该值。

gender.setText(AppVars.Gender.Male.name)

gender是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()
}

您只需要使用AutoCompleteTextView即可轻松完成所有您想要的操作,而不需要使用EditTextSpinner。给你一个很好的芭蕾舞团和还有文档

最新更新