2011-10-18 4 views
1

string.xmlには、値のある多数のキーが含まれています。私はキーに基づいて特定の価値を得たいと思っています。androidのstring.xmlで特定のキー値を読み取る方法は?

たとえば、string.xmlには、key1、key2〜key100までが含まれます。これらのキーをListViewに表示します。ユーザーがkey50を選択した場合は、対応する値をTextViewに表示することを意味します。これを達成する方法は?

サンプルstring.xmlファイル、

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<resources> 
    <string name="key1">value 1</string> 
    <string name="key2"> value 2 </string> 
    ... 
    ... 
    <string name="key100"> value 100 </string> 
</resources> 
+0

に値を入れて、あなたのstring.xmlをファイルを表示することはできますか? – Venky

+0

@ venky、私の更新を見てください。 – bharath

+1

ListViewには正確に何が入っていますか? "key1"、 "key2"などのテキスト文字列?その場合、文字列リソースの値を名前で取得できます。まず、 "android.content.res.Resources"クラスの "getIdentifier"メソッド(defType = string、defPackage =あなたのパッケージ名)を呼び出してIDを取得します。 – Jens

答えて

4

次のコードでlistViewを移入し、この

<string-array name="my_keys"> 
    <item>Key 1</item> 
    <item>Key 2</item> 
    <item>Key 3</item> 
    <item>Key 4</item> 
    <item>Key 5</item> 
    <item>Key 6</item> 
</string-array> 

のような文字列配列の資源としてあなたの鍵を保存する必要があります。

String[] myKeys = getResources().getStringArray(R.array.my_keys); 
ListView mListView = (ListView)findViewById(R.id.yourListView); 
mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myKeys)); 

クリックされたアイテムを取得し、TextView

TextView myTextView = (TextView)findViewById(R.id.yourTextView); 
    mListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     myTextView = ((TextView) view).getText(); 
    } 
    }); 
+0

これは 'ListView'で選択された値を取得する必要があります。しかし、私はこの選択された値に基づいて 'string.xml'から価値を得たいと思っています。 – bharath

+0

string.xmlには、文字列配列などのリソースが含まれています。クリックしたアイテムに基づいてそれらの変数を取得するのはあなた次第です。いつでもリソースの値を読みたい場合は、 'getResources()'を使うだけです。 –

0

私は、キーのためのあなたの値を取得するためにXPathを使用することをお勧めします。

+0

なぜ単純にcontext.getResources.getString()を使用しないのですか? –

2

あなたが<string name="key">string value</string>リソースを持っている場合は、唯一の方法はkeyでそれらにアクセスすることです:ところで

String value = context.getString(R.string.key); 

、あなたはViews(あなたのリストビュー内のもの)に、いくつかの任意のデータを格納する必要がある場合は、使用view.setTag(object)およびview.getTag()

+0

ええ。知っている。しかし、私はユーザーの選択に基づいて特定のキー値を取得する必要があります。 – bharath

+0

私は答えを更新しました。基本的には、ビュー内の任意のオブジェクトを格納/取得できます。 –

関連する問題