0

こんにちは、グリッドビューで imageurl から画像を表示するためにこのコードを試しているときに、null ポインター例外が表示されます。私のコードは

public class Gridview extends Activity {


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gridview);

    GridView gridview = (GridView) findViewById(R.id.gridview);   
    gridview.setAdapter(new ImageAdapter(this));
   }
public class ImageAdapter extends BaseAdapter{


    private Context mContext;
    private Integer[] mThumbIds;
    public ImageAdapter(Context c)
    {
        mContext = c;     
    }
public int getCount() {
    return mThumbIds.length;
}
public Object getItem(int position) {
    return position;
}
public long getItemId(int position) {
    return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(45, 45));
        imageView.setAdjustViewBounds(false);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }
    imageView
            .setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position));
    return imageView;
}
protected Drawable LoadImageFromWebOperations(String url) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();
        Drawable d = Drawable.createFromStream(is, "src name");
        return d;
    } catch (Exception e) {
        System.exit(0);
        return null;
    }
}

}    
4

2 に答える 2

0

画像のダウンロードURLを確認してください。なぜそのURLに位置を追加したのですか?mobile1、mobile2などの画像が多数ある場合は、URLの後にではなく、mobileの後に位置を追加する必要があります。

そして最も重要なのは、現在行っているようにメインUIスレッドでネットワーク操作を実行できないことです。GingerBreadおよびPre-GingerBreadデバイスでは機能する可能性がありますが、それ以降のGingerBreadデバイスでは機能しません。

このリンクを参照して、そのようにしてください。

于 2012-10-11T12:27:57.500 に答える
0

You should check the url, +position will lead to incorrect url:

imageView.setImageDrawable(LoadImageFromWebOperations("http://tmcrmappsqa.inservices.tatamotors.com/cordys/Images/mobile.png"+position));

于 2012-10-11T12:32:55.017 に答える