我试图要求用户在创建帐户之前在微调器中选择一个项目。 所以我正在检查是否使用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。
答案 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)
这就是我处理这种情况的方式。
验证按钮需要检查用户是否从微调器中选择了某些内容,默认情况下微调器具有默认的选定项。此项的默认名称如下: “选择您在哪里听说我们”
让我们开始吧。
首先在布局中创建微调器
<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个微调器,对我来说,使用对象表达更容易覆盖时间
这是用于验证此接口的两种方法:
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")
}
我已为微调器设置了一个侦听器,然后检查了所选项目是否为空或为空,以显示消息“您必须选择听到我们的位置”