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

+0

感谢您的回复。这听起来是个好主意。但是我如何获得对函数中textview的引用。函数应该包含参数。 – Vivek 2010-12-09 05:10:11

+0

是的。例如myfunction(查看v)然后你可以得到由fn点击的Textview ID getId()做你的东西欢呼,Kariyachan – DroidBot 2010-12-09 05:28:27