User
User

Reputation: 1236

Spinner and EditText - work around

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

Answers (1)

SaNtoRiaN
SaNtoRiaN

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

Related Questions