2017-03-11 8 views
0

도시와 위치라는 두 스피너를 만들었습니다. 도시 데이터베이스와 위치 데이터를 로컬 데이터베이스에 저장하고 로컬 데이터베이스에서 도시를 가져 와서 보여줍니다.스피너에서 위치를 사용하여 올바른 값을 가져올 수 없습니다.

내 문제는 배열 목록의 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. 왜주는 말을? 때문에 1부터 어댑터 (오직 데이터 부)

및 cityAreaModelsList 0에서 액세스되는 위치의

답변

1

도와주세요 코드 아래

시도 :

cityId = (String) cityAreaModelsList.get(position-1).getCityId();