如何访问String数组列表xml以下结构

时间:2011-08-05 09:35:10

标签: android xml arrays

我创建了以下结构。这里的级别最多为4,组最多为6个相同的xml文件结构。但是我无法访问level1 - > group1->第一项,也有项目。总共有4个级别,每个级别有6个单独的组,每个组有10个单独的项目。

 <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-&gt; Group1-&gt;然后单击下一步按钮并反复显示1个单词(从不完成或循环方式)。

2 个答案:

答案 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:当然你也可以使用数据库。^^

答案 1 :(得分:0)

我不相信字符串数组资源是这样工作的。