我已经实现了此示例(2.自定义适配器示例) http://www.mkyong.com/android/android-gridview-example/ 它的工作原理。Android - GridView强制更新数据更改
我当时就想“刷新”用一组新的数据,直到我这样做,没有工作:
imageAdapter.notifyDataSetChanged();
,然后取出在ImageAdapter getView方法如下检查:
if (convertView == null) {
这是我目前的getView方法
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
// if (convertView == null) { // stopped my GridView from updating !!
if (true)
{
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(mobileValues[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
imageView.setImageResource(R.drawable.square);
} else {
gridView = (View) convertView;
}
return gridView;
}
我担心它现在正在做不必要的亲一遍又一遍地重复 - 多次膨胀视图?
我应该在每次调用这个函数时创建一个新的GridView吗?
只是通知arraylist您在adapter构造函数中传递的不是整个arrayadapter。 –