【发布时间】:2012-07-19 10:33:27
【问题描述】:
我的 ListView 上有 8 个(可见 4 个)列表项。每个视图包含一个 TextView 和一个 ImageView(最初设置为透明)。现在正在尝试从 onItemClick 方法将 img 设置为 imageView。它对我来说工作正常,但是当我向下滚动其他一些视图时也会产生影响。例如,如果我选择第 0 个位置项目,则第 0 个和第 4 个位置视图都设置为相同的 img。我该如何解决这个问题。
java代码:
list.setAdapter(new SimpleAdapter(this,
application.distanceList, R.layout.drop_down_view, from, to));
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int arg2,
long arg3) {
try {
((ImageView) temp.findViewById(R.id.ddviv))
.setImageResource(android.R.color.transparent);
} catch (NullPointerException e) {
}
((ImageView) v.findViewById(R.id.ddviv))
.setImageResource(R.drawable.drop_sel);
temp = v;}
});
【问题讨论】:
-
您是否使用 CustomAdapter 进行列表?如果是,则提供 getView() 代码。如果没有,则执行它。
-
你说得对,这种问题在
ListView出现很多次 -
最好发布适配器类代码。
-
实现 CustomAdapter 而不是 SimpleAdapter 并在适配器的 getView() 中放置应用图像的条件 if - else 用于特定位置。