2012-10-13 56 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」轉到新行。 –