我需要在Spinner
中验证Android
的所选项目。
我尝试了以下代码,但它无效。
if (Spinner1.getSelectedItem().toString().trim() == "Pick one") {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
代码有什么问题,我该如何解决?
答案 0 :(得分:3)
使用.equals
或.equalsIgnoreCase
比较java/android
中的两个字符串,而不是==
。
试试这个
if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:2)
在 Java 中检查<{1}}类型的相等时,使用equals("Pick one")
并始终使用equals()
方法(除非您正在检查对于 参考 相等),如下所示;
String
你的代码出了什么问题;您正在使用if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}
,这会导致检查==
同一参考是否为Spinner1.getSelectedItem().toString()
,因为“选择一个”是{{1} } 实例
有关详细信息,请检查:
答案 2 :(得分:2)
创建一个名为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;
}
答案 3 :(得分:1)
试试这个..
else if (Spinner1.getSelectedItem().toString().trim().equals("Pick one")) {
Toast.makeText(CallWs.this, "Error",
Toast.LENGTH_SHORT).show();
==
总是只比较两个引用(对于非基元,即),即它测试两个操作数是否引用同一个对象。
但是,equals
方法可以被覆盖 - 因此两个不同的对象仍然可以相等......更多info
答案 4 :(得分:1)
只需使用它。
else if (Spinner1.getSelectedItem().toString().trim().equalsIgnoreCase("Pick one")) {
Toast.makeText(CallWs.this, "Error",
Toast.LENGTH_SHORT).show();
答案 5 :(得分:1)
A