我有一个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对象完成,不需要对数组名称进行硬编码。
由于
答案 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));
}