【发布时间】:2012-06-15 06:53:12
【问题描述】:
解决通过自定义适配器填充列表视图的谜团,该适配器正在传递多个数组列表,如下定义。
主要活动: 我们声明数组列表:
private static ArrayList<Integer> img_challengeicon_values;
static {
img_challengeicon_values = new ArrayList<Integer>();
img_challengeicon_values.add(R.drawable.actionbar_hello);
img_challengeicon_values.add(R.drawable.actionbar_world);
}
private static ArrayList<Integer> img_challengerpic_values;
static {
img_challengerpic_values = new ArrayList<Integer>();
img_challengerpic_values.add(R.drawable.actionbar_look);
img_challengerpic_values.add(R.drawable.actionbar_down);
}
我们声明我们的适配器:
arrayAdapter adapter = new arrayAdapter(this,
img_challengeicon_values,
img_challengerpic_values);
适配器活动: 我们扩展 BaseAdapter && 设置变量:
extends BaseAdapter {
private final Context context;
private ArrayList<Integer> img_challengeicon_values;
private ArrayList<Integer> img_challengerpic_values;
我们调用构造函数:
public arrayAdapter(Context context,
ArrayList<Integer> img_challengeicon_values,
ArrayList<Integer> img_challengerpic_values) {
this.context = context;
this.img_challengeicon_values = img_challengeicon_values;
this.img_challengerpic_values = img_challengerpic_values;
}
最后,我们调用 getView,膨胀布局,并根据传递的变量定义分配图像视图;像这样:
imgChallengeIcon.setImageResource(img_challengeicon_values.get(position));
imgChallengerPic.setImageResource(img_challengeicon_values.get(position));
【问题讨论】:
-
不太明白您在此处要求的内容。您的列表是否为空/崩溃?
-
这是问题的迹象。目前已经找到了一种解决方法,涉及直接在数据库上执行查询;避免将操作抽象到它自己的类中。通过调用通知初始化游标上的数据集更改,可以有效地重新查询数据。
标签: android listview arraylist baseadapter