How to display validation error for spinner widget similar to TextView.setError ()

How to display a validation error for a spinner widget similar to TextView.setError () I don’t want to open a new dialog for every spinner validation error, the android.widget.Spinner class does not have a setError method

+7
android validation spinner
source share
3 answers

If your counter is configured with default views, the getSelectedView() method in the Spinner class will return a TextView . And on this you can call setError(CharSequence) Here is what I did:

 View selectedView = spinner.getSelectedView(); if (selectedView != null && selectedView instanceof TextView) { TextView selectedTextView = (TextView) selectedView; if (!valid) { String errorString = selectedTextView.getResources().getString(mErrorStringResource); selectedTextView.setError(errorString); } else { selectedTextView.setError(null); } } 

The result looks like this on Android 4.4:

Spinner with error

+18
source share

So you can use the 'setError' in your getView in the spinner adapter. Of course, if your xml element of your counter has a TextView:

 if(requeriedField && item.getValue() == 0){ img_tittle_spinner.setError(activity.getResources().getString(R.string.FieldRequired)); } 
0
source share

A slightly cleaner way to make Diderik code:

 static public void setSpinnerError(Spinner spinner, String error){ View selectedView = spinner.getSelectedView(); if (selectedView != null && selectedView instanceof TextView) { TextView selectedTextView = (TextView) selectedView; selectedTextView.setError(error); } } 

Just set error to null if you want to reject it.

0
source share

All Articles