2016-10-12 5 views
0

Ich möchte ein EditText-Feld in meiner Android App validieren. Das Feld ist Spinner. Die Eingabeaufforderung ist in der XML-Datei definiert. Wenn ich es in der Konsole ausgibt, wird es korrekt angezeigt. Wenn jedoch einen Teil der Struktur eines Toasts, innerhalb einer Methode, die Adresse des Spinners wird gedruckt anstatt die Aufforderung: Spinner Validierung in einer Validieren Klasse:Wie bekomme ich die Aufforderung eines Spinner via Methode?

public static boolean spinnerValidated(Spinner spinner) { 
    return spinner.getSelectedItemPosition()==(0); 

} 

Es ist Aufruf in der Hauptklasse:

private void validateSpinner(Spinner spinner) { 
    if (Utility.spinnerValidated(spinner)) { 
     Toast.makeText(getApplicationContext(), 
       "Invalid data for field " + spinner.getPrompt().toString(), 
       Toast.LENGTH_LONG).show(); 
    } 
} 

Aufruf der Methode:

validateSpinner(spinner); 

Spinner xml:

<Spinner 
     android:id="@+id/spinner" 
     style="@style/spinner" 
     android:background="@drawable/edit_text_rectangle" 
     android:spinnerMode="dialog" 
     android:prompt="@string/subcategory"/> 

Und der Stil:

<style name="spinner"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_marginLeft">12dp</item> 
    <item name="android:layout_marginRight">12dp</item> 
    <item name="android:layout_marginBottom">5dp</item> 
    <item name="android:layout_marginTop">5dp</item> 
    <item name="android:paddingTop">8dp</item> 
    <item name="android:paddingBottom">8dp</item> 
</style> 
+0

Zeigen Sie xml. Dein Code scheint in Ordnung zu sein. –

+0

Ich habe es gerade hinzugefügt, danke! – user6456773

+0

Dieser Code sollte funktionieren. Ich kann nichts falsch finden. –

Antwort

2

Toast den globalen Anwendungskontext nicht braucht nicht. Der Umfang dieser Toast ist nur für die Aktivität.

Ändern Sie Ihren Kontext von getApplicationContext() zu YourActivty.this.

Verwandte Themen