0

カスタムアダプターでgridviewを使用しています。グリッドの各アイテムにはイメージビューとチェックボックスが含まれていますが、最後のアイテムをボタンにしたいです。

これが私のコードです:

@Override
    public int getCount() {
        return thumbUrls.size()+1;
    }

getcount で +1 を返して、getview をもう 1 回呼び出すようにしました。

getview で: -

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View row = convertView;
        ViewHolder holder;
        if(row==null)
        {
            row = layoutInflater.inflate(R.layout.griditem, parent, false);
            holder = new ViewHolder();
            holder.mainImage = (ImageView)row.findViewById(R.id.itemgrid);
            holder.checkBox = (CheckBox)row.findViewById(R.id.itemselected);
            row.setTag(holder);
        }
        else {
            holder = (ViewHolder)row.getTag();
        }
        if (position==(thumbUrls.size()+1)) { //this is just to show what i am trying to do.
        Button button = new Button(context);
        return button;
        }
        else
        {
            setImageSize(holder.mainImage);

            holder.mainImage.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    intent.putExtra("position", position);
                    intent.putStringArrayListExtra("MainUrls", mainUrls);
                    intent.putStringArrayListExtra("Thumbnails", thumbUrls);
                    context.startActivity(intent);
                }
            });

            holder.checkBox.setOnCheckedChangeListener(null);
            holder.checkBox.setTag(position);

            holder.checkBox.setChecked(positions.contains(thumbUrls.get(position)));
            holder.checkBox.setOnCheckedChangeListener(this);

            UrlImageViewHelper.setUrlDrawable(holder.mainImage, thumbUrls.get(position), R.drawable.extras_load);
        }
        return row;

    }
4

1 に答える 1

2

それ以外の

    if (position==(thumbUrls.size()+1)) { //this is just to show what i am trying to do.
    Button button = new Button(context);
    return button;
    }

使用する

    if (position == thumbUrls.size()) { 
    Button button = new Button(context);
    return button;
    }

の最初のパラメータpositiongetView0から始まります。また、に適切なパラメータを設定する必要LayoutParameterがありButtonます。

于 2012-10-12T12:13:17.770 に答える