0

ListViewのアイテムがディクショナリであるListViewにアダプタを設定したいと思います。また、ローカリゼーションの目的で、アイテムは「values」フォルダーの下のxmlで定義されることをお勧めします。

現時点では、文字列を含む単純なリストを使用しています。配列は\ values\arrays.xmlで定義されています。

しかし、リストで選択したアイテムのインデックスを使用したくありません。アイテムの順序を時々変更する場合は、この暗黙のインデックスに依存するすべてのコードを変更する必要があります。定義されたキーを使用する方がはるかに簡単です。

どうすればこれを行うことができますか?

4

1 に答える 1

0

辞書は使いません。廃止されました。ArrayListカスタムObjectのまたはの方がうまくいくと思いますHashMapObject次に、あなたはあなたからこれを得ることができますAdapter

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)

            }
});

編集:xmlにリストが必要な場合は、いつでも抽象xmlファイルをリソースに追加できます。これらもローカライズできます。これは次のようになります。

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

ただし、XML解析が含まれるため、必ずしも簡単なソリューションではありません。

于 2012-07-22T20:59:58.440 に答える