0

ユニバーサル イメージ ローダーを使用してイメージをグリッドビューにロードしようとしていますが、アクティビティがロードされたときにアプリがクラッシュしているようで、問題を特定できません。配列から画像を読み込んでから、画像アダプターを呼び出して画像を取り込みます。

アプリケーションをデバッグしましたが、LogCat で目立ったものは何も見つかりませんでした。

すべてのヘルプは大歓迎です:)

public class MainActivity extends Activity {

    String[] imageUrls;

    DisplayImageOptions options;
    protected ImageLoader imageLoader = ImageLoader.getInstance();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Bundle bundle = getIntent().getExtras();
        imageUrls = bundle.getStringArray(Extra.IMAGES);

        options = new DisplayImageOptions.Builder()
            .showStubImage(R.drawable.stub_image)
            .showImageForEmptyUri(R.drawable.image_for_empty_url)
            .cacheInMemory()
            .cacheOnDisc()
            .bitmapConfig(Bitmap.Config.RGB_565)
            .build();

        GridView gridView = (GridView) findViewById(R.id.gridview);
        gridView.setAdapter(new ImageAdapter());


    }

    public class ImageAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return imageUrls.length;
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ImageView imageView;
            if (convertView == null) {
                imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
            } else {
                imageView = (ImageView) convertView;
            }

            imageLoader.displayImage(imageUrls[position], imageView, options);

            return imageView;
        }
    }
}

編集: Logcat エラー: 「AndroidRuntime(6789): java.lang.RuntimeException: ImageLoader は、使用する前に構成で初期化する必要があります」

4

1 に答える 1

0

簡単な答え: LogCat で何かを取得するには、次のようにすることができます

try{

// Your code

}catch (Exception e){

    log.e(e.tostring());
}

また、私は通常リスト/配列をアダプタークラス内に置き、関数を介して変更しますが、

ImageAdapter.add(string s)

そしてアダプターで:

List<String> imageURLs = new List<String>;

public int add(String s) {
    imageURLs.add(s);
    notifyDataSetChanged();
}

これが役立つことを願っています!

于 2013-01-04T16:49:26.243 に答える