2011-01-21 12 views
2

나는 listpreference이 있습니다. 아무리 내가 여기에 코드를 복사하는 방법, 그것은 잘못 표시되지 않습니다, 그래서 난 그냥 그것의 문제 복사Android listpreference - 값을 가져 오는 중

<ListPreference 
      android:title="List Preference" 
      android:summary="This preference allows to select an item in a array" 
      android:key="listPref" 
      android:defaultValue="digiGreen" 
      android:entries="@array/listArray" 
      android:entryValues="@array/listValues" /> 

그리고이 : 나는 이것을 listpreference 부분에서 preferences.xml에서 코드를

string-array name="listArray" 
items: Mercedes, Audi, Porsche 

string-array name="listValues" 
items: car1, car2, car3 

을 다음과 같이 선택 항목을 가져 오려는 코드입니다.

String listpref = preferences.getString("listPref", "n/a"); 
    Toast.makeText(TutorialPref.this, "Chosen item of ListPref:" + listpref, Toast.LENGTH_LONG).show(); 

문제는 항목이 아닌 값을 반환합니다. 그래서 메르세데스를 선택하면 내가 가진 가치는 "car1"입니다.

"메르세데스"는 어떻게받을 수 있습니까?

당신은 값으로 키와 같은 배열 값과 배열 항목이지도 만들 수 있습니다

답변

5

:

private Map<String,String> cars = new HashMap<String, String>(); 

if (cars.isEmpty()) { 
    String[] carNames = getResources().getStringArray(R.array.listArray); 
    String[] carIds = getResources().getStringArray(R.array.listValues); 
    for (int i = 0; i < carIds.length; i++) { 
    cars.put(carIds[i], carNames[i]); 
    } 
} 

그리고 당신의 토스트를 그냥 넣어 필요 cars.get(listpref)

+0

환상적! 고맙습니다! – erdomester

5

와 차 이름을 검색 동일한 엔트리 배열에있는 엔트리 값과 같은 배열

android:entryValues="@array/listArray" 
관련 문제