问题描述
我需要在Android
验证Spinner
所选项目 。
我尝试了以下代码,但它不起作用。
if (Spinner1.getSelectedItem().toString().trim() == "Pick one") {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
代码有什么问题,我该如何解决?
1楼
使用.equals
或.equalsIgnoreCase
比较java/android
两个字符串而不是==
。
尝试这个
if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
2楼
使用equals("Pick one")
并在检查Java中 String
类型的相等性时总是使用方法(除非您检查引用相等性),如下所示;
if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
你的代码出了什么问题;
你正在使用==
这导致检查Spinner1.getSelectedItem().toString()
是否与 "Pick one"
,因为“Pick one”是一个new String()
实例 ,它将始终为false
有关详情,请检查:
3楼
创建一个名为spinner_item.xml的新布局:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在您的活动内部MainActivity.java初始化您的微调器视图:
Spinner mySpinner= (Spinner) findViewById(R.id.mySpinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.items_array, R.layout.spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);
最后使用以下方法验证您的微调器:
boolean validateSpinner(Spinner spinner, String error){
View selectedView = spinner.getSelectedView();
if (selectedView != null && selectedView instanceof TextView) {
TextView selectedTextView = (TextView) selectedView;
if (selectedTextView.getText().equals("")) {
selectedTextView.setError(error);
Toast.makeText(this, error, Toast.LENGTH_LONG).show();
return false;
}
}
return true;
}
4楼
尝试这个..
else if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error",
Toast.LENGTH_SHORT).show();
==
总是只比较两个引用 (对于非基元,即) - 即它测试两个操作数是否引用同一个对象。
但是,可以覆盖equals
方法 - 因此两个不同的对象仍然可以相等......更多
5楼
只需使用它。
else if (Spinner1.getSelectedItem().toString().trim().equalsIgnoreCase("Pick one")) {
Toast.makeText(CallWs.this, "Error",
Toast.LENGTH_SHORT).show();
6楼
boolean validateSpinner(Spinner spinner, String error){
View selectedView = spinner.getSelectedView();
if (selectedView != null && selectedView instanceof TextView) {
TextView selectedTextView = (TextView) selectedView;
if (selectedTextView.getText().equals("Select Academic Year")) {
selectedTextView.setError(error);
Toast.makeText(this, error, Toast.LENGTH_LONG).show();
return false;
}
}
return true;
}