-5

グリッドビューで画像を表示するための多くのコードを試しましたが、アプリケーションはエミュレーターに近づきました。これが私のコードです...

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);        
    final GridView ObjGrid = (GridView)findViewById(R.id.gridview);
    ObjGrid.setAdapter(new ImageAdapter(this));        
}

そして ImageAdapter クラスは上記のとおりです

public class ImageAdapter extends BaseAdapter {

int[] images = new int[]{
        R.drawable.pic1,
        R.drawable.pic2,
        R.drawable.pic3,
        R.drawable.pic4,
        R.drawable.pic5,
        R.drawable.pic6
    };
private Context cont;
public ImageAdapter(Context applicationContext) {
    cont = applicationContext;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return images.length;
}

@Override
public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public long getItemId(int arg0) {
    // TODO Auto-generated method stub
    return arg0;
}

@Override
public View getView(int arg0, View ConvertView, ViewGroup arg2) {
    ImageView iv;
    if(ConvertView == null)
    {
        iv = new ImageView(cont);
        iv.setLayoutParams(new GridView.LayoutParams(180, 180));
        iv.setScaleType(ScaleType.CENTER_CROP);
        iv.setPadding(0, 8, 8, 8);          
    }
    else
    {           
        iv=(ImageView)ConvertView;
    }
    iv.setImageResource(images[arg0]);
    return null;
}

}

解決策を教えてください。ダウンロードするプロジェクトファイルを提供する可能性があれば、それは私にとって非常に役立ちます...ありがとう

4

1 に答える 1

2

getView メソッドで null を返しています。null ではなく、そこにビュー (あなたの場合、生成している ImageView) を返す必要があります。

于 2012-07-05T19:06:40.130 に答える