如何循环遍历列表视图并从每一行的文本视图中获取文本

Posted

技术标签:

【中文标题】如何循环遍历列表视图并从每一行的文本视图中获取文本【英文标题】:How can I loop thru a listview and getting the text from textviews in each row 【发布时间】:2015-01-04 07:38:32 【问题描述】:

我有这个自定义列表视图,并希望循环通过它,从每一行的文本视图中获取文本。 这是我的代码的本质:

private TextView totalColumn;


totalColumn = (TextView)findViewById(R.id.column3);

listView.setAdapter(adapter);

for(int i = 0; i < listView.getCount(); i++)
    String p = totalColumn.getText().toString();
    System.out.println(p);
 

我看不到我在做什么 syso 给了我一个空指针。 getCount() = 4,所以这不是问题。

谁能帮帮我?

【问题讨论】:

堆栈跟踪提供了导致错误的确切行和列。请发布它并告诉我们哪一行是堆栈跟踪提供的。 空指针在指责我在哪里设置 String p = totalColumn.getText().toString(); 那么totalColumn 为空。 顺便说一句,如果数组总是返回相同的值,为什么还要循环遍历数组? totalCollum 与列表视图有什么关系?此外,您使用相同的整个 for 循环。并且没有使用 i。 【参考方案1】:

当它到达一个不存在的数组槽时,可能会给出一个空指针。 试试

int i=0; i < shoppingL.size(); i++

【讨论】:

没有什么叫做 shoppingL.size()【参考方案2】:

从列表视图中的文本视图中获取所有文本是错误的方法,因为列表视图中可能有更多项目然后可见。正确的方法是从适配器中检索文本。

【讨论】:

你的意思是在我的自定义适配器类中吗?【参考方案3】:

你不能那样做。 Listview 保存当前正在查看的行。不能一次创建所有行。您可以从

保存创建的视图

public View getView(int position, View convertView, ViewGroup parent)

回调方法。

并保存在集合(Arraylist)中并遍历列表视图的末尾并迭代集合,然后您将获得结果。

【讨论】:

以上是关于如何循环遍历列表视图并从每一行的文本视图中获取文本的主要内容,如果未能解决你的问题,请参考以下文章

如何从列表视图中的项目单击中获取歌曲在android中

如何在列表视图中聚焦下一个编辑文本

Android如何在文本视图或任何东西中打印数组

OnItemClick 如何从列表视图中获取单击项目的文本值

Android 中通过Java代码动态生成EditText视图,并循环遍历EditText取出遍历的ID和文本框的值

通过编辑文本可搜索的列表视图