我有一个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的标题。有任何想法我可以解决这个问题吗?
答案 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对象的子视图。