从资源文件中拉出一个数组以填充android中的列表

时间:2011-11-10 17:17:40

标签: android

我正在完成列表框构建示例,并希望更改它以从数组文件中提取数组(继续分离代码和数据事物)

所以不要像这样在类中声明数组

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));

但是,列表似乎没有填充数组

所有帮助(来自有点混乱的初学者程序员)

3 个答案:

答案 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);

阅读android tutorial

答案 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);