将多个字符串添加到列表数组?

时间:2012-10-13 18:11:49

标签: android arrays string arraylist

我有大约70个字符串,我想添加到字符串数组..然后在TextView中打印String数组..

我做了一些功课,我想我确实想把字符串添加到ListArray。

字符串位于string.xml文件中。

TextView tvHerb = (TextView) findViewById(R.id.tvHerb);

    ArrayList<String> herbList = new ArrayList<String>();
    herbList.add(R.string.angelica, null);
    herbList.add(R.string.anise_seed, null);

    tvHerb.setText(herbList.toString());

一旦在模拟器上显示布局,我就会收到运行时错误。

我很失落!我也是Android编程的新手,所以任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

您需要使用context.getString(id)来获取字符串资源。

还有一些原因你正在使用.add的2参数版本吗?

您可能需要herbList.add( context.getString( R.string.angelica ) );

答案 1 :(得分:0)

而不是在string.xml文件中使用id的每个字符串。你可以在string.xml中声明一个字符串数组

   `<resources>
   <string-array name="sample">
   <item>YourValue1</item>
   <item>YourValue2</item>
    .....
   <item>YourValue70</item>
   </string-array>
   </resources>`

然后在您的活动中

   `String[] sample = getResources().getStringArray(R.array.sample);
   ArrayList<String> arrayList = new ArrayList<String>(sample.length);
   arrayList = Arrays.asList(sample);`

答案 2 :(得分:0)

首先,我同意agreco关于属性数量的答案。

但是,如果你只在你的arraylist中添加来自你字符串ressource的字符串,我认为最好直接在strings.xml文件中定义一个String数组。

但是,我猜您的问题来自于将toString应用于ArrayList的事实。 toString是一种通用方法,我不确定它对数组的行为。 toString不一定符合您的确切需求,而且大部分时间都没有。

我认为你最好做点什么:

String stringToInsert =herbList.get(0);

    for (int i=1;i<herbList.size();i++)
    {
        stringToInsert+="ANY_SEPARATOR_YOU_WANT" + herbList.get(i);
    }

    tvHerb.setText(stringToInsert);