Android GridView不显示图像

Android GridView不显示图像,android,Android,我想在我的应用程序中创建一个产品库,所以我创建了一个产品库 活动并在库布局中插入栅格视图 并使用基本适配器显示数据,但运行应用程序时会显示空白活动 自定义适配器代码: public class GalleryManager extends BaseAdapter { Context context; List<Drawable> list; int[] id; public GalleryManager(Context context , int[]

我想在我的应用程序中创建一个产品库,所以我创建了一个产品库

活动并在库布局中插入栅格视图

并使用基本适配器显示数据,但运行应用程序时会显示空白活动

自定义适配器代码:

public class GalleryManager extends BaseAdapter {
    Context context;
    List<Drawable> list;
    int[] id;

    public GalleryManager(Context context , int[] id ) {
        this.context = context;
        //this.list = list;
        this.id = id;
    }

    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public Object getItem(int position) {
        return position;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(id[position]);
        return imageView;
    }
}
布局中的视图:

<GridView
        android:id="@+id/galleryGridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="3"
        android:verticalSpacing="0dp"
        android:horizontalSpacing="0dp" />

将数组长度用于
getCount()
方法,更改getCount方法

@Override
    public int getCount() {
        return id.length;
    }

我希望这能对您有所帮助。

发生这种情况是因为您没有在自定义适配器中正确返回数组大小和数组项

更新getCount方法以返回可提取数据的数量:

@Override
public int getCount() {
    return list.getSize();
}
并更新getItem方法以返回DrawableItem:

@Override
public Object getItem(int position) {
    return list.get(position);
}
然后像这样更新getItem方法:

@Override
public int getCount() {
    return list.size();
}
 @Override
    public Object getItem(int position) {
        return list.get(position);
    }
@Override
public int getCount() {
    return list.size();
}
 @Override
    public Object getItem(int position) {
        return list.get(position);
    }