2017-03-11 11 views
0

私は2つのスピナーを作成しました。私は、ローカルデータベースに都市および位置データを保存し、ローカルデータベースから都市を取得し、それらを表示しました。スピナーの位置を使って正しい値を得ることができません

私の問題は、これは私が配列リストの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()); 
} 

//スピナーコード

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.なぜを与えると言いますか?

とcityAreaModelsListは0からアクセスしている1(データ部のみ)から始まるので、アダプタの位置の

答えて

1

を助けてください。コードの下

試してみてください。

cityId = (String) cityAreaModelsList.get(position-1).getCityId(); 
関連する問題