2011-08-05 37 views
4

我已經創建了以下結構。這裏的級別最多可達4個,組最多可達6個相同的xml文件結構。但我無法訪問level1 - > group1->第一個項目,其中還有項目。這裏總水平有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->然後單擊下一個按鈕並重復顯示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

我不相信字符串數組資源是打算這樣工作的。