如何通过id而不是位置设置微调器选择

zac*_*ung 7 android

我创建了一个简单的Spinner将它绑定到a SimpleCursorAdapter.我正在SimpleCursorAdapter填写内容提供商的城镇列表.

当我去保存用户选择时,我打算保存正在填充的行ID SimpleCursorAdapter.

我正在使用以下代码来获取ID.

townSpinner.getSelectedItemId();
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚当我拉回保存的项目时如何最好地设置选择.

以下代码有效但只按位置编号设置选择.

townSpinner.setSelection(2);
Run Code Online (Sandbox Code Playgroud)

我应该创建一个循环来根据Id确定正确的位置值吗?

long cityId = Long.parseLong(cursor.getString(CityQuery.CITY_ID));

for (int i = 0; i < citySpinner.getCount(); i++) {              
    long itemIdAtPosition2 = citySpinner.getItemIdAtPosition(i);
    if (itemIdAtPosition2 == cityId) {
        citySpinner.setSelection(i);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

Fri*_*ave 2

我想你已经回答了你自己的问题!只需使用您发布的代码编写您自己的 setSelectionByItemId 方法