【问题标题】:In my application, a spinner item selection is mandatory. How can I show an error to the user if the user doesn't select any item?在我的应用程序中,微调项目选择是强制性的。如果用户没有选择任何项目,我如何向用户显示错误?
【发布时间】:2019-06-20 11:00:03
【问题描述】:

我想在Spinner 中显示一条错误消息,说明当用户未在微调器中进行任何选择时用户“选择一个状态”(必须选择spinner item)。

如何使用Mainactivity.java 代码做到这一点?

<Spinner
        android:id="@+id/spinner1"  
        android:layout_width="319dp" 
        android:layout_height="52dp"  
        android:layout_marginTop="11dp" 
        android:entries="@array/state_arrays"/>

【问题讨论】:

  • 到目前为止,您已经尝试过。请分享您的代码以帮助您。
  • 不要发表评论,而是通过编辑在您的问题中添加上述 xml。

标签: android validation spinner


【解决方案1】:

您可以使用.equals() 方法验证微调器。试试下面的代码:

if (Spinner1.getSelectedItem().toString().trim().equals("select a city")) {
    Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}

【讨论】:

  • 像魅力一样工作!。
【解决方案2】:

添加以下函数以验证 spinner 是否包含您的默认文本。

 public static boolean validateSpinner(AppCompatSpinner[] fields) {
        for (int i = 0; i < fields.length; i++) {
            AppCompatSpinner currentField = fields[i];
            if (currentField.getCount() <= 0 || currentField.getSelectedItem().toString().contains("Your Default Value")) {
                ((TextView) currentField.getSelectedView()).setError(fieldRequired);
                return false;
            }
        }
        return true;
    }

如果微调器选择了任何下拉项,则返回true,否则返回false

 if (!validateSpinner(new AppCompatSpinner[]{citySpinner}))
             Utils.showSnackbar(mainLayout, selectCityTxt);

将此行添加到您要验证spinner 的位置。

validateSpinner() 函数将创建一个动态的textview 来显示错误消息,而不是显示Toast

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多