单击从自定义列表视图中获取数据

Dan*_*Dan 4 android listview

我有一个自定义ListView,其中两个TextView都包含不同的值.我希望能够在单击某个项目时从其中一个TextView获取内容.

这是我到目前为止的代码:

listView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String value;
// value = (get value of TextView here)
     }
});
Run Code Online (Sandbox Code Playgroud)

我希望能够分配value一个TextView的文本.

MH.*_*MH. 9

虽然@山姆的建议将在大多数情况下工作得很好,其实我更喜欢使用提供AdapterViewonItemClick(...)此:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Person person = (Person) parent.getItemAtPosition(position);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我认为这是一种更加傻瓜式的方法,因为AdapterView它将考虑可能使用的任何标题视图ListView.addHeaderView(...).

例如,如果你ListView包含一个标题,点击适配器提供的第一个项将导致position变量的值为1(而不是0没有标题的默认情况),因为标题占据位置0.因此,很容易错误地检索位置的错误数据并ArrayIndexOutOfBoundsException为最后一个列表项引入.通过从中检索项目AdapterView,位置将自动正确偏移.您当然可以手动更正它,但为什么不使用提供的工具?:)

仅供参考和FWIW.