验证微调器上的用户输入

时间:2019-12-02 09:19:35

标签: android validation kotlin spinner

我试图要求用户在创建帐户之前在微调器中选择一个项目。 所以我正在检查是否使用if语句选择了一个项目。如果未选中,我会向用户显示一条零食消息,告诉他们必须选择一项。下面是代码:

val hearAboutUs =
    if (utmSourcesSpinner.selectedIndex > 0) 1
else 0

if (hearAboutUs == 0) {
    showErrorSnack("You must select where you heard about us.")
}

现在,当选择微调器中的第一个项目时,如果(utmSourcesSpinner.selectedIndex> 0)1 else 0则返回false,而如果其余项被选中,则(utmSourcesSpinner.selectedIndex> 0)1 else 0返回true。

4 个答案:

答案 0 :(得分:0)

Spinner.selectedIndex返回所选项目的第一个选定位置的索引,位置为0,所以0并非> 0,所有Spinners首先选择0索引,因此您无需进行验证

答案 1 :(得分:0)

spinner.getSelectedItemPosition()返回所选项目的索引。

  int pos = spinner.getSelectedItemPosition();
    if (pos > 0) {
        // spinner option is selected
    } else {
        //show toast please select item.
    }

答案 2 :(得分:0)

这就是我处理这种情况的方式。

验证按钮需要检查用户是否从微调器中选择了某些内容,默认情况下微调器具有默认的选定项。此项的默认名称如下: “选择您在哪里听说我们”

让我们开始吧。

  1. 首先在布局中创建微调器

     <Spinner
         android:id="@+id/where"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="32dp"
         android:layout_marginEnd="32dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
    

我们有一个带有条目的微调器(我想您已经知道如何自定义它们,如果需要,我可以解释一下)

微调器允许两种方法使用它们,我们需要导入

AdapterView.OnItemSelectedListener

但是我更喜欢为微调器创建对象表达式,基本上我创建了一个继承类的对象,我这样做是因为,如果我们有4个微调器,对我来说,使用对象表达更容易覆盖时间

  1. 导入所有方法

这是用于验证此接口的两种方法:

where.onItemSelectedListener =对象:AdapterView.OnItemSelectedListener {

override fun onItemSelected(parent: AdapterView<*>, view: View, pos: Int, id:Long) {

            Log.d("test", "user select: ${where[pos]}")
            Log.d("test", "user select: ${where.selectedItem}")
        }

       override fun onNothingSelected(parent: AdapterView<*>) {
            // Another interface callback
        }
    }

在此方法中,我的微调器的ID在哪里,因此您可以调用验证,也可以在单击按钮登录后进行验证,然后可以通过

将选定的内容发送到另一个活动
where.selectedItem.text

随时按住选择项

参考:https://developer.android.com/guide/topics/ui/controls/spinner

答案 3 :(得分:0)

这是我用过的。

spinner.setOnItemSelectedListener { _, _, _, item ->
        mSelectedItem = item.toString()
    }
if (mSelectedItem.isNullOrEmpty()) {
        showErrorSnack("You must select where you heard about us")
} 

我已为微调器设置了一个侦听器,然后检查了所选项目是否为空或为空,以显示消息“您必须选择听到我们的位置”