不显示的Andr​​oid 2.1的GridView [英] Android 2.1 gridview not displayed

查看:129
本文介绍了不显示的Andr​​oid 2.1的GridView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在网格视图中显示一些图像。我的code适用于Android的2.2和2.3,而不是2.1

I'm trying to display some images in a grid view. My code works for android 2.2 and 2.3, but not in 2.1

在Android 2.1的网格总是空的/不可见。

In android 2.1 the grid is always empty/invisible.

在code我用网格视图这是其一:

The code I use for the grid view is this one:

gridview = (GridView)findViewById(R.id.level_select);
gridview.setAdapter(new LevelImagesAdapter(this, levelsCount,
            maxLevel, listener));
gridview.invalidate();

该LevelImagesAdapter是:

The LevelImagesAdapter is:

public class LevelImagesAdapter extends BaseAdapter {

    private View.OnClickListener listener;
    private Context mContext;
    private int count;
    private int maxLevel;

    public LevelImagesAdapter(Context c, int maxLevel, int count, View.OnClickListener listener) {
        this.mContext = c;
        this.listener = listener;
        this.count = count;
        this.maxLevel = maxLevel;
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Button view;
        if (convertView == null) {
            view = new Button(mContext);
            view.setOnClickListener(listener);
            view.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.WRAP_CONTENT, GridView.LayoutParams.WRAP_CONTENT));
            view.setPadding(5, 5, 5,5);
        }
        else {
            view = (Button) convertView;
        }

        if (position <= maxLevel) {
            view.setBackgroundResource(R.drawable.level_unlock);
            view.setText((position + 1) + "");
            view.setTextColor(Color.WHITE);
            view.setTextSize(16.0f);
        }
        else {
            view.setBackgroundResource(R.drawable.level_lock);
            view.setText("");
        }
        return view;
    }

}

据我所知,该适配器被创建,但getView方法不会被调用。

As far as I can tell, the adapter is created, but the getView method is never called.

谢谢!

推荐答案

的getItem(位置)必须返回比其他东西 NULL

Your getItem(position) must return something other than NULL

确认 getCount将()返回一个非零数字。

Make sure getCount() is returning a non-zero number.

检查并确保你有你的GridView布局参数在布局设置为 FILL_PARENT ,而不是 match_parent 下API级别不支持 match_parent 所以 FILL_PARENT 是向后兼容。在GridView可以被隐藏,它不会在这种情况下,调用 getView

Check and make sure you have your GridView layout parameters set to fill_parent in your layout and not match_parent Lower API levels don't support match_parent so fill_parent is backwardly compatible. The GridView could be hidden and it won't call getView in that case.

这篇关于不显示的Andr​​oid 2.1的GridView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆