2012-07-22 3 views
0

ListView의 항목이 사전 인 ListView에 어댑터를 설정하려고합니다. 그리고 현지화를 위해 "값"폴더 아래의 xml 항목을 정의하는 것이 좋습니다. 순간xml에서 사전이있는 ListView 어댑터

, 나는 배열이 \ 값에 정의 된 문자열, \ arrays.xml

간단한 목록을 사용하지만 목록에서 선택한 항목의 인덱스를 사용하지 않는다 - 때로는 항목의 순서를 변경하면이 암시 적 인덱스에 종속 된 모든 코드를 변경해야합니다. 정의 된 키를 사용하는 것이 훨씬 쉽습니다.

어떻게하면됩니까?

답변

0

사전은 사용하지 않습니다. obsolete입니다. 사용자 정의 Object 또는 HashMapArrayList을 사용하면 더 좋아질 것이라고 생각합니다.

listview.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       //adapter.getItem(position); - this is how you can acces the object 
       //connected to the selected item from the list 
       //Then you can easily access an id of this object (or from HashMap) 

      } 
}); 

편집 : 그럼 당신은 당신의 Adapter에서이 Object를 얻을 수 있습니다 당신은 XML의 목록을 원한다면, 당신은 항상 당신의 자원 추상적 인 XML 파일을 추가 할 수 있습니다. 이들은 현지화 될 수 있습니다.

<my_word> 
    <id>123</id> 
    <word>My word</word> 
</my_word> 

그러나 XML 파싱이 필요하므로 반드시 쉬운 해결책은 아닙니다.

+0

감사합니다. 첫 번째 단계입니다. 하지만 여전히 객체를 지역화 할 수있는 XML로 저장해야합니다. –

+0

하지만 그게 왜 문제가됩니까? 일반적으로 같은 이름으로 저장할 수 있으며 사용자 정의 객체는 이름 (R.string.my_word_in_bilion_languages)으로 액세스 할 수 있으며 적절하게 지역화됩니다. –

+0

네가 맞아.하지만 간단히 말해서 나는 목록을 저장하는 편이 낫다. 단일 문자열 대신 xml의 배열/사전으로. 그러나 귀하의 접근 방식은 완전히 충분합니다. –

관련 문제