如何通过方法获取微调器的提示?

How to get the prompt of a spinner via method?

我想验证我的 android 应用程序中的 EditText 字段。该字段是微调器。提示在.xml 中定义。如果我在控制台中输出它,它会正确显示。但是,当作为 Toast 结构的一部分时,在一个方法中,将打印微调器的地址而不是提示: 验证中的 Spinner 验证 class:

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

}

主要是调用class:

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>

Toast 不需要全局应用程序上下文。此 Toast 的范围仅适用于 Activity.

将您的上下文从 getApplicationContext() 更改为 YourActivty.this