2

我有大约 70 个字符串要添加到字符串数组中。然后在 TextView 中打印字符串数组。

我做了一些功课,我想我实际上想将字符串添加到 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编程的新手,所以任何帮助都将不胜感激。

4

3 回答 3

1

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

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

你可能想要herbList.add( context.getString( R.string.angelica ) );

于 2012-10-13T18:14:12.503 回答
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);`
于 2012-10-13T18:37:45.813 回答
0

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

但是,如果您只在您的数组列表中添加来自您的字符串资源的字符串,我认为直接在您的 strings.xml 文件中定义一个字符串数组会更好。

但是,我想您的问题来自您将 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);
于 2012-10-13T18:38:13.520 回答