如何从ListView返回资源数组

时间:2012-02-14 20:18:19

标签: android arrays listview

我有一个ListView定义如下:

<ListView
android:key="key1"
android:title="@string/title"
android:summary="@string/summary"
android:entries="@array/options"
android:entryValues="@array/values" />

参赛作品&amp;您可以在XML文件中指定值。如何以编程方式从ListView获取条目数组?

有些事情如下:

ListView myListView = this.findViewById(R.layout.my_layout);
String[] myListViewEntries = context.getResources().getStringArray( myListView.??????? );

任何帮助都将不胜感激。

请不要告诉我硬编码数组名称(如“R.array.some_array”),这必须仅使用ListView对象完成,不需要对数组名称进行硬编码。

由于

2 个答案:

答案 0 :(得分:1)

我认为您可以通过调用myListView.getAdapter()来实现此目的,String[] array = getStringArray(myListView.getAdapter()); 应返回用于创建列表条目的适配器。到那时,您可以添加/编辑/删除适配器中的项目以进一步修改列表。

这是从适配器检索字符串数组的方法:

public static String[] getStringArray(ListAdapter adapter){
        String[] a = new String[adapter.getCount()];

        for(int i=0; i<a.length; i++)
            a[i] = adapter.getItem(i).toString();

        return a;
    }

和您的静态方法:

{{1}}

答案 1 :(得分:0)

您可以从适配器获取所有元素

ListAdapter adapter = ListView.getAdapter()

然后你可以循环遍历所有元素

for(int i = 0; i < adapter.getCount(); i++) {
    doSomethingWithElement(adapter.getItem(i));
}