首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓ViewPager + ImageLoader

安卓ViewPager + ImageLoader
EN

Stack Overflow用户
提问于 2012-12-14 06:21:32
回答 1查看 1.7K关注 0票数 1

我用ViewPager库创建了一个ImageLoader,我在这段代码中有错误,我不明白日志中他想要什么!在主布局中,我只有ViewPager在adapterLayout中,我有FrameLayout和ImageView

代码语言:javascript
复制
public class ImageGallery extends Activity {

    ViewPager pager;

    String[] BigImages;
    String[] Authors;
    String[] Dates;
    String[] Descriptions;

    DisplayImageOptions options;

    @Override
    protected void onCreate(Bundle savedInstanceState){     
        super.onCreate(savedInstanceState);

        Bundle bundle = getIntent().getExtras();
        String[] imageUrls = bundle.getStringArray("big_images");
        int pagerPosition = bundle.getInt("position");

        options = new DisplayImageOptions.Builder()
            .showImageForEmptyUri(R.drawable.ic_contact_picture_2)
            .resetViewBeforeLoading()
            .cacheOnDisc()
            .imageScaleType(ImageScaleType.IN_SAMPLE_INT)
            .bitmapConfig(Bitmap.Config.RGB_565)
            .displayer(new FadeInBitmapDisplayer(300))
            .build();


        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new GalleryImage(ImageGallery.this, imageUrls));
        pager.setCurrentItem(pagerPosition);

    }

class GalleryImage extends PagerAdapter{

    private String[] images;
    private LayoutInflater inflater;
    ImageLoader imageLoader;

    GalleryImage(Context context, String[] images) {
        this.images = images;
        inflater = getLayoutInflater();
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(context));

    }

    @Override
    public void destroyItem(View container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }
    @Override
    public int getCount() {
        return images.length;
    }

    @Override
    public Object instantiateItem(View view, int position) {
        final View imageLayout = inflater.inflate(R.layout.item_gallery, null);
        final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image);

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


        ((ViewPager) view).addView(imageLayout, 0);
        return imageLayout;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view.equals(object);
    }

}}

日志

代码语言:javascript
复制
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gazetaimage/com.gazetaimage.ImageGallery}: java.lang.NullPointerException
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2356)
    at android.app.ActivityThread.access$600(ActivityThread.java:150)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5193)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
    at com.gazetaimage.ImageGallery.onCreate(ImageGallery.java:49)
    at android.app.Activity.performCreate(Activity.java:5104)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2260)
    ... 11 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-14 06:22:45

看来您忘记添加行setContentView(R.layout.yourxml);

必须在调用它之前完成,ViewPager pager = (ViewPager) findViewById(R.id.pager);。如果不这样做,Android就不知道在哪里查找资源,很明显,它将返回null,这就是您获得NullPointerException的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13873695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档