2011-08-05 5 views
4

私は次の構造を作成しています。ここでレベルは4までで、グループは最大6つの同じxmlファイル構造です。しかし、level1 - > group1-> itemの最初の項目としてアクセスすることはできません。ここでは合計レベルは4で、各レベルには6つの個別のグループがあり、個々のグループには10の個別アイテムがあります。ここではいくつかのコード どのようにストラクチャの次の文字列配列のXMLリストにアクセス

、私がしようとしていること

<resources> 
    <string-array name="level1">  

     <item> 
      <string-array name="group1"> 
      <item> 
       <string-array> 
        <item>the</item> 
        <item>the little boy</item>   
       </string-array> 
      </item>   
      <item> 
       <string-array> 
        <item>a</item> 
        <item>a good boy</item>   
        </string-array> 
      </item> 
     </string-array> 
     </item> 

     <item> 
     <string-array name="group2"> 
      <item> 
       <string-array> 
        <item>he</item> 
        <item>he is it</item>    
       </string-array> 
      </item>   
      <item> 
       <string-array> 
        <item>i</item> 
         <item>i can go</item>   
        </string-array> 
         ... 
       </item> 
       ... 
     </string-array> 
      ... 
    </item> 
... 
</string-array> 

....
 final String levels []=getResources().getStringArray(R.array.level); 
     final TextView tw=(TextView)findViewById(R.id.txtWord); 
     String group1=levels[0]; 

     final String groups []=getResources().getStringArray(R.array.group); 
     String item1=groups[0]; 
     tw.setText(item1); 

だから、あなたは私にこの問題の背後にある任意のアイデアをお願いします。私の究極の目標は、Level1-> Group1-> Thenを選択することです。次のボタンをクリックして、1単語を時間通りに繰り返し表示します。

+0

誰でもこの問題の背後には考えられませんか? –

答えて

1

だから、文字列のグループを反復処理したいのですか? インデックス付きのプレーンストリングを使用しないのはなぜですか?あなたの活動やコンテキストで

<string name="string_deftype">string</string> 
<string name="mylexicon_identifier">level_%1$d_group_%2$d_word_%3$d</string> 

<string name="level_1_group_1_word_1">the</string> 
<string name="level_1_group_1_word_2">the little boy</string> 
.... 
<string name="level_2_group_2_word_1">i</string> 
<string name="level_2_group_2_word_2">i can go</string> 

そして

this.getResources().getIdentifier(getString(R.string.mylexicon_identifier, index_level, index_group, index_word), getString(R.string.string_deftype), getApplicationContext().getPackageName())); 

だから、基本的にこれで何ができるか:あなたは適切なリソースが存在する場合は、あなたのループでチェックする必要がありに対し

loop levels 
    loop groups 
    loop words 

(ドキュメントを参照)

getIdentifier() != 0 

このアプローチは、ドキュメントに記載されているように非常に高速ではありません。 私はこれが役立つことを願っています。

PS:もちろんデータベースを使用することもできます。^^

0

文字列配列リソースがこのように動作するとは思われません。