1

我在我的活动上制作了一个包含大量图像的应用程序,我有 11 个网格视图。问题是对于每个 gridview 我必须制作一个新的 Adapter 来填充图像我正在寻找一种方法来使用一个 Adapter 填充每个 Gridview 以显示不同的图像堆栈!有没有可能我是android新手所以我不知道要搜索什么

谢谢

编辑:继承人我的一个适配器的代码

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;
    }

private Integer[] mThumbIds = {
        R.drawable.pic76, R.drawable.pic87,
        R.drawable.pic77, R.drawable.pic88,
        R.drawable.pic78, R.drawable.pic89,
        R.drawable.pic79, R.drawable.pic90,
        R.drawable.pic80, R.drawable.pic91,
        R.drawable.pic81, R.drawable.pic82,
        R.drawable.pic82, 
        R.drawable.pic83, 
        R.drawable.pic84, 
        R.drawable.pic85, 
        R.drawable.pic86
};

你可以看到我已经硬编码了我的图像,如果 griview=="first" 那么有什么理由让这个像这样

4

3 回答 3

0
    @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  View row = convertView;
  RecordHolder holder = null;

  if (row == null) {
   LayoutInflater inflater = ((Activity) context).getLayoutInflater();
   row = inflater.inflate(layoutResourceId, parent, false);

   holder = new RecordHolder();
   holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
   row.setTag(holder);
  } else {
   holder = (RecordHolder) row.getTag();
  }


  holder.imageItem.setImageBitmap(data.get(position));
  return row;

 }

要为您的网格视图实现自定义适配器,您需要在适配器中实现 getView 方法,在该方法中您必须传递作为 int 的位置,该位置用于传递数组或列表以从 .

所以你所能做的就是把你的逻辑放在你使用位置来填充你的适配器的地方。

你能行的。

否则在这里分享你的代码,让我看看。

谢谢。

于 2013-08-20T11:49:50.183 回答
0

您可以使用以下方法制作不同类型的视图:

@Override
public int getItemViewType(int position) {
    return 1; //your type info here
}

所以适配器中的每个元素都可以有不同的视图。只需在 getView 方法中进行一些切换。请记住还要覆盖 getViewTypeCount,以便适配器知道您有多少种类型。

于 2013-08-20T11:57:00.467 回答
0

11个网格视图?为什么?这一切都在一个视图上吗?您不能在多个适配器视图上共享适配器实例,这是非常不推荐/不可能的。

于 2013-08-20T11:42:23.730 回答