2016-10-12 7 views
0

私はアンドロイドアプリのEditTextフィールドを検証したいと思います。フィールドはスピナーです。プロンプトは.xmlで定義されています。コンソールに出力すると正しく表示されます。しかし、トーストの構造の一部は、メソッド内で、スピナーのアドレスがなくプロンプトよりも印刷されている場合:方法を介してスピナーのプロンプトを取得するには?

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

} 

、メインクラスの呼び出しは次のとおり検証クラスの スピナー検証

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

方法のコール:

validateSpinner(spinner); 

スピナーのxml:

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

とスタイル:

<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

あなたはxmlを表示します。あなたのコードはうまくいくようです。 –

+0

私はちょうどそれを追加しました、ありがとう! – user6456773

+0

このコードはうまくいくはずです。私はそれで間違ったものは見つけられません。 –

答えて

2

Toastは、グローバル・アプリケーション・コンテキストを必要としません。このToastの有効範囲はアクティビティのみです。

コンテキストをgetApplicationContext()からYourActivty.thisに変更してください。

関連する問題