2013-09-30 2 views

Antwort

0

So können Sie 'setError' in Ihrem getView im Adapter von Spinner verwenden. Natürlich, wenn xml Ihr Artikel Ihrer Spinner einen Textview hat:

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

Wenn Ihr Spinner ist Set-up mit Standardelement betrachtet die getSelectedView() Methode auf Spinner Klasse ein TextView zurück. Und das kann man setError(CharSequence) hier nennen, ist, was ich tat:

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); 
    } 
} 

Ergebnis sieht wie folgt auf Android 4.4:

Spinner with error

+3

Wie Spinner Standardwert festlegen, da jedes Mal, wenn ich spinner.getSelectedView() aufrufen, ich null, weil auf meinem Spinner nichts ausgewählt ist. – vikifor

0

Ein etwas sauberer Weg von Diederik den Code zu tun:

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); 
    } 
} 

Setzen Sie einfach error auf null, wenn Sie es ablehnen möchten.