2010-08-18 57 views
0

后不updatet我使用基于行的布局列表中的元素有一个列表活动:图像变化

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
<TextView android:id="@+id/exerciseText" android:textSize="40sp" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> 
<ImageView android:id="@+id/solutionImage" android:scaleType="center" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView> 
</LinearLayout> 

我填了SimpleAdapter名单,超过提供数据此列表:

List<HashMap<String, String> > data; 

我最初用一些字符串和默认图像加载数据。主要图像稍后加载。将图像保存为资源ID

Integer.toString(R.drawable.check) 

现在的问题: 虽然我最初投入列表中的图像是正确加载,更新的项目不直接改变其外观。他们必须离开可视区域(在滚动的视图中,我必须滚动,直到它们离开窗户,如果我将它们向后滚动,它们会改变它们的外观)。这个问题不仅涉及图像,还涉及文本(我不会在我的应用程序中更新)。

我是否必须使用ArrayAdapter而不是SimpleAdapter来自动更新工作?

感谢您的任何形式的提示和询问,如果我没有让自己清楚

回答

1

一个SimpleAdapter

一个简单的适配器静态数据映射到的意见

从而如果您的数据将来发生更改,则应使用ArrayAdapter。在后者中,在更新后的数据调用

mArrayAdapter.notifyDataSetChanged(); 

和图像应当自动更新

PS。 Same question

1

SimpleAdapter还支持方法notifyDataSetChanged(),所以没有必要使用一个ArrayAdapter