android - StickyGridHeader 示例

标签 android gridview header sticky

我正在实现一个 GridView ,其中包含每个月的标题(月份)和图像。我正在尝试实现基本适配器,但它似乎不起作用。

GridView stickyGrid = (GridView) findViewById(R.id.show_gridview);
        GridViewAdapter adapter = new GridViewAdapter(getBaseContext());
        stickyGrid.setAdapter(adapter);

基础适配器实现

public class GridViewAdapter extends BaseAdapter implements
        StickyGridHeadersBaseAdapter {

    private LayoutInflater inflater;

    public GridViewAdapter(Context context) {
        inflater = LayoutInflater.from(context);
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView holder;

        if (convertView == null) {
            holder = (ImageView) inflater.inflate(R.layout.item_grid,
                    parent, false);
        } else {
            holder = (ImageView) convertView;
        }

        imageLoader.displayImage(Util.BASE_URL + imageUrls.get(position),
                holder, options, new SimpleImageLoadingListener() {
                    @Override
                    public void onLoadingStarted(String imageUri, View view) {
                        spinner.setVisibility(View.VISIBLE);
                    }

                    @Override
                    public void onLoadingFailed(String imageUri, View view,
                            FailReason failReason) {
                        String message = null;
                        switch (failReason.getType()) {
                        case IO_ERROR:
                            message = "Input/Output error";
                            break;
                        case DECODING_ERROR:
                            message = "Image can't be decoded";
                            break;
                        case NETWORK_DENIED:
                            message = "Downloads are denied";
                            break;
                        case OUT_OF_MEMORY:
                            message = "Out Of Memory error";
                            break;
                        case UNKNOWN:
                            message = "Unknown error";
                            break;
                        }
                        Toast.makeText(getBaseContext(), message,
                                Toast.LENGTH_SHORT).show();
                        spinner.setVisibility(View.GONE);
                    }

                    @Override
                    public void onLoadingComplete(String imageUri,
                            View view, Bitmap loadedImage) {
                        spinner.setVisibility(View.GONE);
                    }
                });
        return holder;
    }

    @Override
    public int getCountForHeader(int arg0) {
        return datesHeader.size();

    }

    @Override
    public View getHeaderView(int position, View convertView,
            ViewGroup parent) {
        TextView holder;
        if (convertView == null) {
            holder = (TextView) inflater.inflate(R.layout.date_header,
                    parent, false);
        } else {
            holder = (TextView) convertView;
        }
        holder.setText(datesHeader.get(position));
        return holder;
    }

    @Override
    public int getNumHeaders() {
        // TODO Auto-generated method stub
        return 0;
    }

}

首先,我遇到的问题是它不会为其中任何一个(简单和标题)执行 getView 。我想到的下一件事是如何为特定图像设置标题。我有一个图像 url 的数组列表和另一个标题(月)列表。请帮助我,因为我已经花了 4 天时间,但找不到任何解决方案。

最佳答案

GridView 适配器的 getcount() 为零。

关于android - StickyGridHeader 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16898876/

相关文章:

c++ - C++ 头文件中带有未声明函数的 Doxygen 注释

C++ 基类未定义

c - 为什么153的阶乘在下面的程序中失败了

java - 如何在android中从另一个Fragment调用一个Fragment方法

android - 使用 getValue() 从 DataSnapshot 解析到 Firebase 中的 Java 类

带有 IntentService 的 Android RxJava 间隔

css - 如何更改 MaterializeCSS 中容器的默认宽度?

java - 根据 array1 的随机项按索引选择 array2 项

gridview - 单击链接按钮以获取隐藏的 ID 值时获取选定的 aspgridview 行

android - 使用 Android GridView 的键盘导航不会滚动网格