2013-09-30 6 views

risposta

0

Quindi, è possibile utilizzare "setError" nel proprio getView nell'adattatore di spinner. Naturalmente, se xml del tuo articolo del filatore ha un TextView:

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

Se il filatore è set-up con voce Predefinito Visite al metodo getSelectedView() sulla classe Spinner restituirà un TextView. E su che è possibile chiamare setError(CharSequence) Ecco quello che ho fatto:

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

questo risultato su Android 4.4:

Spinner with error

+3

Come impostare il valore predefinito di spinner, perché ogni volta che chiamo spinner.getSelectedView() ho ottenuto null, perché non è selezionato nulla sulla mia selezione. – vikifor

0

Un modo un po 'più pulito di fare il codice di Diederik:

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

Basta impostare error su null se si desidera ignorarlo.

Problemi correlati