onListItemClick返回当前视图顶部项目的数据

时间:2012-02-17 21:11:22

标签: android listview

我有一个onListItemClick,它返回listview中item的文本:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
    TextView tv = (TextView)findViewById(R.id.item_title);
    Toast.makeText(getApplicationContext(), (tv).getText(),
            Toast.LENGTH_SHORT).show();
}

问题是它返回的数据来自当前列表视图顶部的项目,而不是单击的实际列表项目。为了说明我是否有一个像这样的列表

A
----- (Start of Viewable area)
B
C
D
------(End of viewable area)
E

如果我点击D项,吐司将返回项目B的标题。有任何想法我可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

从您的自定义ListView中调用该方法,对吗?据我所知,“findViewById”正在整个ListView中搜索id为“R.id.item_title”的视图。由于屏幕上有多个列表项,因此它位于顶部。相反,请致电

// Call on the child view provided as a parameter, instead of on the ListView
TextView tv = (TextView)v.findViewById(R.id.item_title);

以便它搜索作为参数“v”传递的View对象的子视图。