2012-10-13 62 views
2

我有大约70串,我想添加到字符串数组。然后打印一个TextView字符串数组..添加多个字符串到ListArray?

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

回答

1

您需要使用context.getString(id)得到字符串资源。

也就是在那里,你正在使用的.add的2参数版本的一些原因?

你可能想而不必每个字符串与string.xml文件ID的herbList.add(context.getString(R.string.angelica));

0

。您可以在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);` 
+0

我想单独的字符串,所以我可以调用其他地方的字符串中的应用程序..而不必知道我可以打电话给herb1的位置$ herb2 $(借口的语法) – user1742596

0

首先我agreco的有关属性的个数答案达成一致声明的字符串数组。

而且,如果你在你的ArrayList只有来自您的字符串的ressource弦乐加入,我觉得倒不如直接在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); 
+0

分隔符,我没有认为它可能是一个新行..所以我把它从一个TextView更改为一个ListView ..我正在如何让文本ListView ListView.setText不存在... – user1742596

+0

甲ListView和一个TextView是完全不同的(走的时候使用一个ListView之前阅读本:http://developer.android.com/guide/topics/ui/layout/listview.html) 第关于e分隔符,您可以使用“\ n”转到新行。 –