0

フラグメントに gridView があります

     @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        //
        Bundle savedInstanceState) {




    if (container == null) {
        Log.e("Null container", "Null");

        return null;
    }
    Log.e("fragment1", "fragment1 reached!");
    View view =  inflater.inflate(R.layout.menu1_fragment, container, false);
    GridView gridView = (GridView)view.findViewById(R.id.gridview1);
    gridView.setAdapter(new ImageAdapter(this.getActivity()));


    Log.e("fragment1", "fragment1 reached!");

    return (GridView)inflater.inflate(R.layout.menu1_fragment, container, false);
}

しかし、アダプターは機能せず、オーバーライドされた getView メソッドに到達しません。

コンストラクタ:

public ImageAdapter(Context c) {
    mContext = c;
    Log.e("ImageAdapter", "constructor");
}

GetView メソッド:

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
    Log.e("ImageAdapter", "dsfdsf");
    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        if (DefinedValues.width/3 < DefinedValues.height/4)
        imageView.setLayoutParams(new GridView.LayoutParams
                (DefinedValues.height/4, DefinedValues.height/4));
        else
            imageView.setLayoutParams(new GridView.LayoutParams
                    (DefinedValues.width/3-5, DefinedValues.width/3-5));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}
4

2 に答える 2

0

ではonCreateView、xml を 2 回膨張させています。1 つは編集中で、次に編集されていないものを返しています。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
    //
    Bundle savedInstanceState) {




if (container == null) {
    Log.e("Null container", "Null");

    return null;
}
Log.e("fragment1", "fragment1 reached!");
View view =  inflater.inflate(R.layout.menu1_fragment, container, false);
GridView gridView = (GridView)view.findViewById(R.id.gridview1);
gridView.setAdapter(new ImageAdapter(this.getActivity()));


Log.e("fragment1", "fragment1 reached!");

return view;
}
于 2012-12-11T11:20:40.170 に答える
-1

私はあなたがに変更する必要があると思います

public ImageAdapter(Context c) {
    this.mContext = c;
    Log.e("ImageAdapter", "constructor");
}

これをチェックして。

于 2012-12-11T11:22:19.853 に答える