我有一个自定义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的文本.
虽然@山姆的建议将在大多数情况下工作得很好,其实我更喜欢使用提供AdapterView在onItemClick(...)此:
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.
| 归档时间: |
|
| 查看次数: |
11204 次 |
| 最近记录: |