Java 如何处理验证错误消息显示未选择微调器中的项目?
如何处理验证错误消息显示未选择微调器中的项目?下面的编码可以工作,但当我选择其中一个项目时,也会显示toast消息。谁能帮帮我,我错过了哪一部分Java 如何处理验证错误消息显示未选择微调器中的项目?,java,android,Java,Android,如何处理验证错误消息显示未选择微调器中的项目?下面的编码可以工作,但当我选择其中一个项目时,也会显示toast消息。谁能帮帮我,我错过了哪一部分 if(RegisterUserType.getSelectedItemPosition() == 0) { Toast.makeText(RegistrationActivity.this, "Select the options listed, either parents or tuition provider.",
if(RegisterUserType.getSelectedItemPosition() == 0)
{
Toast.makeText(RegistrationActivity.this, "Select the options listed, either parents or tuition provider.", Toast.LENGTH_SHORT).show();
}
微调器设置适配器的编码:-
List<String> categories = new ArrayList<>();
categories.add(0, "Choose Category");
categories.add("Parents");
categories.add("Tuition Provider");
ArrayAdapter<String> dataAdapter;
dataAdapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, categories);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
RegisterUserType.setAdapter(dataAdapter);
RegisterUserType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
if (parent.getItemAtPosition(position).equals("Chooose Category"))
{
//Do Nothing
}
else
{
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), item +" selected.", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent)
{
// TODO Auto-generated method stub
}
});
List categories=new ArrayList();
类别。添加(0,“选择类别”);
类别。添加(“家长”);
类别。添加(“学费提供者”);
阵列适配器;
dataAdapter=new ArrayAdapter(这是android.R.layout.simple\u微调器项目,类别);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
RegisterUserType.setAdapter(dataAdapter);
RegisterUserType.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id)
{
if(parent.getItemAtPosition(position).equals(“Choose类别”))
{
//无所事事
}
其他的
{
String item=parent.getItemAtPosition(position.toString();
Toast.makeText(parent.getContext(),item+“selected.”,Toast.LENGTH_SHORT.show();
}
}
@凌驾
未选择公共无效(AdapterView父级)
{
//TODO自动生成的方法存根
}
});
在微调器第0个位置添加项目
spinnerList.add("Please choose one");
现在检查所选位置是否不是0
if(spinner.getSelectedItemPosition()==0){
// show error toast
}
向要传递到微调器的数组中添加第一项虚拟项 例如,添加“选择项目” 然后检查所选位置是否=0
显示Toast我认为您可以执行以下要求:, 在活动的Oncreate()中
ArrayList countries=new ArrayList();
国家。添加(“选择国家”);
国家。添加(“印度”);
国家。添加(“中国”);
国家。添加(“美国”);
国家。添加(“非洲”);
国家。添加(“俄罗斯”);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,国家/地区);
RegisterUserType.setAdapter(适配器);
RegisterUserType.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
如果(位置==0){
Toast.makeText(getApplicationContext(),“未选择任何项目”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(getApplicationContext(),“Item Selected=“+parent.getItemAtPosition(position),Toast.LENGTH_LONG).show();
}
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
我希望这对您有所帮助。您可以使用
spinner.getSelectedItemPosition()
进行此操作
要处理这个问题,只需在arrayList中添加一个伪值,如下所示
arraylist.add("Select item");
然后是你的其他数据
arraylist.add("ABC");
arraylist.add("XYZ");
arraylist.add("BCA");
用于检查验证使用
if(spinner.getSelectedItemPosition()==0)
{
Toast.makeText(this,"Please select an item",Toast.LENGTH_SHORT).show();
}
能否显示将适配器设置为的代码spinner@VivekMishra我已经用你想要的编码编辑了这个问题:)如果你的条件是错误的。getSelectedItem永远不会为空。你有两种方法可以做到这一点。按照下面答案中所述的所选位置进行检查,或者比较字符串,如所选项目文本为“选择类别”,然后显示toast@VivekMishra我已经拿到了,是这样吗?我刚刚编辑了我的答案。是的。但如果您使用equalIgnoreCase()而不是equals()会更好,因为情况无关紧要,这里是getSelectedPosition还是GetSelectedEditPosition()?我不是用Android Studio写这个答案的,我编辑了答案。使用
getSelectedItemPosition
。您可以接受答案让其他人知道,现在问题已经解决了。非常感谢您提供完整的编码示例!这对我真的很有帮助
if(spinner.getSelectedItemPosition()==0)
{
Toast.makeText(this,"Please select an item",Toast.LENGTH_SHORT).show();
}