Android:获取ListView的onItemClickListener()中的TextView
问题描述:
我正在开发SoundBoard应用程序。我的课程扩展ListActivity和列表视图如下Android:获取ListView的onItemClickListener()中的TextView
[Image] [Text]
[Image] [Text]
[Image] [Text]
现在,当用户点击任何文本视图,我需要改变该文本视图的图像。我通过下面的代码来实现它。
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView tv1 = (TextView) view;
//Here I change the image with tv1 as reference
}
但我需要一个替代的方式来获得所选择的TextView。因为当我使用上面的方法改变图像时,如果用户选择列表中的第三行,图像在第二个滚动页面的第三行,第三个滚动页面的第三行等等变化受到影响。不仅所需的textview图像更改,但滚动列表时,即将更改的滚动页面中的一个textview会更改。希望你能解决我的问题。任何帮助表示赞赏。由于
答
我认为你看到的行为来自于一个事实Android会回收ListView中使用的TextView;这就是为什么Adapter.getView()
有一个convertView参数。 (一旦一个TextView已经滚动到屏幕,它可以通过convertView
参数传递到Adapter.getView()
,重新使用一个已经滚动到显示的项目。)
,你可以尝试添加android.widget.AbsListView.OnScrollListener到ListView ,以在特定时间追踪列表中的哪些项目在屏幕上。您可能还需要覆盖Adapter.getView()
以强制图像回到默认设置(或者更一般地说,使用适用于新显示项目的图像)。
答
我没有测试我自己,你可以尝试通过添加onClck属性中的TextView <android :onclick="name of function>
干杯, Kariyachan
感谢您的回复。这听起来是个好主意。但是我如何获得对函数中textview的引用。函数应该包含参数。 – Vivek 2010-12-09 05:10:11
是的。例如myfunction(查看v)然后你可以得到由fn点击的Textview ID getId()做你的东西欢呼,Kariyachan – DroidBot 2010-12-09 05:28:27