Android Spinner验证

时间:2014-03-08 10:00:36

标签: android spinner android-spinner

我需要在Spinner中验证Android所选项目

我尝试了以下代码,但它无效。

if (Spinner1.getSelectedItem().toString().trim() == "Pick one") {
    Toast.makeText(CallWs.this, "Error", Toast.LENGTH_SHORT).show();
}

代码有什么问题,我该如何解决?

6 个答案:

答案 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