【发布时间】:2014-02-22 13:02:24
【问题描述】:
我目前正在开展一个展示手机及其价格的项目。 我的项目包含两个网格视图。第一个 gridview 显示带有文本(品牌名称)和图像的移动品牌列表。当我们点击第一个 gridview 中的内容时,第二个 gridview 会显示一个特定品牌的暴民图像列表和价格。 我的项目运行成功,但我使用了很多适配器类。我的问题是,是否可以使用一个具有多个图像数组的适配器类来显示不同暴民品牌的图像。
我目前的适配器类如下:
iphone mob 的适配器类
public class ImageAdapter1 extends BaseAdapter {
private Context mContext;
public ImageAdapter1(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.iphone1, R.drawable.iphone2,
R.drawable.iphone3, R.drawable.iphone4,
R.drawable.iphone5, R.drawable.iphone6
};
}
三星的适配器类
public class ImageAdapter2 extends BaseAdapter {
private Context mContext;
public ImageAdapter2(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.samsung1, R.drawable.samsung2,
R.drawable.samsung3, R.drawable.samsung4
};
}
我尝试了很多方法来只使用一个适配器类,并尝试在适配器类的 getView() 中使用 if 语句。但它没有用:(我正在尝试并寻找不同的方法来完成它。如果你有相同的解决方案,请随时在此处发布。
【问题讨论】:
-
是的,通用
ImageAdapter并根据您的要求将不同的 ImageArray 'mThumbIds' 从 Activity 传递到 ImageAdapter。 -
完成了。感谢您的帮助。
标签: android gridview android-arrayadapter