0

合計 7 列のグリッド ビューを作成したいと考えています。グリッドの 1 行目は動的なテキストで、後続の行には動的な画像が含まれています。最初は動的画像だけで試してみて成功しましたが、テキストビューを追加した後、エラーが発生しました。

グリッドビュー用のアダプターは次のようになります

private Context mContext;
private int[] colors = new int[] { Color.WHITE, 0x30aaaaaa };
private int[] dotColors = new int[7];
private int[] sta= new int[100];
private TasksDataSource datasource;
private int con=1000;
TextView textview1;
public Integer[] mThumbIds = new Integer[con];
String[] dday = {"S","M","T","W","T","F","S"};
int[] day7;

public ImageAdapter(Context context, int[] content,int[] content2){
    sta = content;
    day7=content2;
    datasource = new TasksDataSource(context); //here
    datasource.open(); 
    mContext=context;
}s

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    int[] st = new int[sta.length];
    int ii=0,jj=0;
    View myView  = null;
    if(convertView==null) {
        LayoutInflater li = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        myView = li.inflate(R.layout.gridmenu, null);
    }else{
        myView = convertView;
    }

    TextView tv = (TextView) myView.findViewById(R.id.grid_item_text);
    if(position<7) {
        tv.setText(dday[position]);
        tv.setTextColor(day7[position]);
    }
    else {
        ImageView imageView =(ImageView) myView.findViewById(R.id.grid_item_image);
        imageView.setImageResource(sta[position]);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    }

    return myView;
}

私のグリッドレイアウトは次のようになります

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/GridItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <TextView android:id="@+id/grid_item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_centerHorizontal="true">
    </TextView>

    <ImageView android:id="@+id/grid_item_image"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </ImageView>

</RelativeLayout>

私が得る問題は、画像が適切でないことです。それらは失われます。ポジションを処理している間、私のコードは正しいですか?

4

1 に答える 1

0

テキストビューでレイアウトを作成し、それを膨らませ、このアダプターを使用...

    public static class ImageAdapter extends BaseAdapter {
                Context MyContext;
                List<Buttons> list;
                private LayoutInflater mInflater;
                int pos;

                public ImageAdapter(Context _MyContext, List<Buttons> _list) {
                    MyContext = _MyContext;
                    mInflater = LayoutInflater.from(_MyContext);
                    list = _list;
                }

                public int getCount() {
                    return list.size();
                }

                public View getView(int position, View convertView, ViewGroup parent) {
                    ViewHolder holder;

                    if (convertView == null) {
                        convertView = mInflater.inflate(R.layout.grid_item, null);
                        holder = new ViewHolder();

                        holder.text= (Textview) convertView
                                .findViewById(R.id.grid_item_text);
                        holder.image = (ImageView) convertView.findViewById(R.id.grid_item_image);
                        holder.image.setImageResource(list.get(position).getIconid());
                        holder.text.setText(list.get(position).getText);
                    } else {
                        convertView = mInflater.inflate(R.layout.grid_item, null);
                        holder = new ViewHolder();
                        holder.text= (Textview) convertView
                                .findViewById(R.id.grid_item_text);
                        holder.image = (ImageView) convertView
                                .findViewById(R.id.grid_item_image);
                        holder.image.setImageResource(list.get(position).getIconid());
holder.text.setText(list.get(position).getText);
                    }
                    convertView.setBackgroundDrawable(null);
                    return convertView;
                }

                public Object getItem(int arg0) {
                    return arg0;
                }

                public long getItemId(int arg0) {
                    return arg0;
                }

                static class ViewHolder {
                    ImageView image;
                    Textview text;
                }
            }
于 2013-04-29T09:58:18.500 に答える