Android:在ListView的onItemClickListener()中获取TextView

时间:2010-12-09 04:55:36

标签: android listview listviewitem

我正在开发SoundBoard应用程序。我的类扩展了ListActivity,listview如下

[Image] [Text]
[Image] [Text]
[Image] [Text]

现在,当用户点击任何文本视图时,我需要更改该textview的图像。我通过以下代码实现它。

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图像更改,但滚动列表时更改即将到来的滚动页面中的一个文本视图。希望你能解决我的问题。任何帮助表示赞赏。感谢

2 个答案:

答案 0 :(得分:1)

我认为您所看到的行为来自Android回收ListView中使用的TextViews这一事实;这就是Adapter.getView()convertView参数的原因。 (一旦TextView滚出屏幕,它就可以通过Adapter.getView()参数传递到convertView,以便重新用于已滚动到显示屏上的项目。)

您可以尝试向ListView添加android.widget.AbsListView.OnScrollListener,以便在给定时间跟踪列表中的哪些项目在屏幕上。您可能还需要覆盖Adapter.getView()以强制图像恢复为默认值(或者更常见的是,使用适合新显示项目的图像。)

答案 1 :(得分:0)

我没有测试自己,你可以通过在Textview中添加onClck属性来尝试 <android :onclick="name of function>

干杯, Kariyachan