Spinner忽略条件语句

时间:2011-06-30 19:46:02

标签: android spinner if-statement

所以我得到了我的微调器,其中包含来自StringArray的条目。

String[] spinnerEntries = {
                getResources().getString(R.string.oldPoint),
                getResources().getString(R.string.newPoint),
                getResources().getString(R.string.gpsLocation) };

Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, spinnerEntries);

我想根据微调器选择来设置searchPoint,但除了第一个(oldPoint)之外,它完全igonore所有情况。我究竟做错了什么?我太累了或太傻了,但我只是没有看到问题。

public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
    String spinnerItem = (String) parent.getItemAtPosition(pos);
    if (spinnerItem.equals(getString(R.string.oldPoint))) {
        searchPoint = R.string.oldPoint;
    } else if (spinnerItem.equals(R.string.newPoint)) {
        searchPoint = R.string.newPoint;
    } else if (spinnerItem.equals(R.string.gpsLocation)) {
        searchPoint = R.string.gpsLocation;
    }
}

1 个答案:

答案 0 :(得分:1)

在第一个条件中,您正确地在常量名称上调用getString()。但是,在第二个其他两个块上,你不是。

// Correct
if (spinnerItem.equals(getString(R.string.oldPoint))) {
    searchPoint = R.string.oldPoint;

// Need to call getString() on R.string.newPoint
} else if (spinnerItem.equals(R.string.newPoint)) {
    searchPoint = R.string.newPoint;

// Need to call getString() on R.string.gpsLocation
} else if (spinnerItem.equals(R.string.gpsLocation)) {
    searchPoint = R.string.gpsLocation;
}