我有大约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编程的新手,所以任何帮助都会受到赞赏。
答案 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);