所以我得到了我的微调器,其中包含来自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;
}
}
答案 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;
}