Reputation: 1236
I want to show EditText. On tapping edit text, Spinner should open. On selecting item in spinner, the value should be populated in edit text.
gender.setText(AppVars.Gender.Male.name)
gender is EditText and genderSpinner is Spinner
When I tap the gender edittext, it does open the spinner and on choosing the item, the chosen item sits in edit text. All good. But if I dont select anything in the spinner and click some where on screen, the spinner values are not shown instead only default value is shown at the bottom of the screen.
I want to get rid of this.
If I click anywhere else in the screen, the spinner should disappear. Is it possible?
Below is the code,
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()
}
Upvotes: 0
Views: 562
Reputation: 2202
You just need to use AutoCompleteTextView
to do all what you want easily instead of using EditText
and Spinner
. Here you have a good tutoial and
also the documentation
Upvotes: 4