我创建了2个微调器,说城市和位置。我已将城市和位置数据保存在本地数据库中,并从本地数据库中获取城市并显示它们。
现在,我的问题是我添加了#34;选择城市"位于数组列表的第0位。当我选择任何城市并运行命令来获取基于城市的位置时,我会根据位置得到错误的位置。
我无法获得正确的位置。
//代码
dumy = new Dumy(this);
cityAreaModelsList = dumy.getOnlyCities();
cityList = new ArrayList<String>();
cityList.add(0, "Select City");
for (int i = 0; i < cityAreaModelsList.size(); i++) {
cityList.add(cityAreaModelsList.get(i).getCityName());
}
// spinner code
select_city.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (position == 0) {
Log.e(TAG, "Select City " );
} else {
cityId = (String) cityAreaModelsList.get(position).getCityId();
Log.e(TAG, "onItemSelected: "+cityId );
}
}
}
//说我已经选择了新的德里城市id是1,但它给了我2.为什么?请帮忙
答案 0 :(得分:1)
因为适配器的位置从1(仅数据部分)开始
和cityAreaModelsList正在从0访问;
尝试以下代码:
cityId = (String) cityAreaModelsList.get(position-1).getCityId();