2

いくつかの画像をグリッド ビューで表示しようとしています。私のコードは android 2.2 と 2.3 で動作しますが、2.1 では動作しません

Android 2.1 では、グリッドは常に空/非表示です。

グリッド ビューに使用するコードは次のとおりです。

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

LevelImagesAdapter は次のとおりです。

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 メソッドは呼び出されません。

ありがとう!

4

1 に答える 1

6

あなたgetItem(position)は何か以外のものを返さなければなりませんNULL

getCount()ゼロ以外の数値が返されていることを確認してください。

fill_parentレイアウトで GridView レイアウト パラメーターが に設定されていることを確認してください。match_parent下位 API レベルではサポートされていないためmatch_parentfill_parent下位互換性があります。GridView は非表示になっている可能性があり、その場合は呼び出されませんgetView

于 2012-07-24T18:01:18.360 に答える