我正在完成列表框构建示例,并希望更改它以从数组文件中提取数组(继续分离代码和数据事物)
所以不要像这样在类中声明数组
private static final String[] items={"A", "B", "C","D", "E", "F"};
我在r.arrays.xml中有一个名为exercise
的字符串数组<resources>
<array name="exercises">
<item>Kettlebells - Swing, Two handed</item>
<item>Kettlebells - Swing, One handed</item>
<item>Kettlebells - Squat"</item>
<item>Kettlebells - Deadlift"</item>
<item>"Kettlebells - Lunge"</item>
<item>"Kettlebells - Press</item>
</array>
取代现有的
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
与
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, R.array.exercises));
但是,列表似乎没有填充数组
所有帮助(来自有点混乱的初学者程序员)
答案 0 :(得分:16)
试试这个:
String[] exercises = getResources().getStringArray(R.array.countries_array);
ArrayAdapter<String> exercisesAdapter=new ArrayAdapter<String>(this, R.layout.simple_list_item_1,exercises);
setListAdapter(exercisesAdapter);
答案 1 :(得分:2)
那constructor's个参数不是你认为的那样。第二个int是布局中用于绑定数据的textView的id。您可以使用getResources().getStringArray(R.array.exercises);
填充items
,然后将该列表传递给ArrayAdapter构造函数。
答案 2 :(得分:1)
尝试使用
Resources res = getResources();
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
res.getStringArray(R.array.exercises);