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