Java Android-使用片段扩展另一个类

Java Android-使用片段扩展另一个类,java,android,android-fragments,universal-image-loader,Java,Android,Android Fragments,Universal Image Loader,我试图在片段中使用通用图像加载程序,但我得到了空指针异常。原始流如下所示: Activity A extends AbsListViewBaseActivity { public class ImageAdapter extends BaseAdapter { //this flow is working, images are showing imageLoader.displayImage(values2.get(position).get(TAG_IMAGE_NAME2 ).toStrin

我试图在片段中使用通用图像加载程序,但我得到了空指针异常。原始流如下所示:

Activity A extends AbsListViewBaseActivity
{
public class ImageAdapter extends BaseAdapter {
//this flow is working, images are showing
imageLoader.displayImage(values2.get(position).get(TAG_IMAGE_NAME2 ).toString(), holder.image, options2);
}
}

AbsListViewBaseActivity extends BaseActivity
{
     public ImageLoader imageLoader = ImageLoader.getInstance();
}
使用片段,我想复制上面的实现,但在imageLoader中得到空指针。我唯一不能做的就是扩展AbsListViewBaseActivity,同时也扩展BaseActivity(初始化imageloader的人),因为下面扩展了
片段

public class CollectionDemoActivity extends FragmentActivity {
static ImageAdapter imageAptr ;
 public BaseActivity base;

 public static class DemoObjectFragment extends Fragment {
((GridView) absList.listView).setAdapter(imageAptr);
}

public class ImageAdapter extends BaseAdapter {
//Getting Errors in here/ null pointer 
base.imageLoader.displayImage("Image Path", holder.image, options2);
}

}
Logcat:

07-18 18:49:36.073: E/AndroidRuntime(20970): FATAL EXCEPTION: main
07-18 18:49:36.073: E/AndroidRuntime(20970): java.lang.NullPointerException
07-18 18:49:36.073: E/AndroidRuntime(20970):    at com.jinisys.restoplusordering.CollectionDemoActivity$ImageAdapter.getView(CollectionDemoActivity.java:403)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.AbsListView.obtainView(AbsListView.java:2267)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1447)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.View.measure(View.java:15181)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.Choreographer.doCallbacks(Choreographer.java:555)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.Choreographer.doFrame(Choreographer.java:525)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.os.Handler.handleCallback(Handler.java:615)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.os.Looper.loop(Looper.java:137)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at android.app.ActivityThread.main(ActivityThread.java:4745)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at java.lang.reflect.Method.invokeNative(Native Method)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-18 18:49:36.073: E/AndroidRuntime(20970):    at dalvik.system.NativeStart.main(Native Method)

Imageloader
需要在
BaseAdapter
类中配置,因此我所做的是因为上面的代码非常混乱。我直接在我的主要活动中使用它:
BaseActivity.imageLoader.init(ImageLoaderConfiguration.createDefault(getBaseContext())而是依赖于在
AbsListViewBaseActivity
类中进行配置。

可能
CollectionDemoActivity
应该扩展
AbsListViewBaseActivity
,而不是
FragmentActivity
。如果这不适用,您应该将旧项目作为外部项目/库包括在内,以便直接使用
公共类ImageAdapter
。在使用它之前,需要配置并构建Imageloader@g00dy,你能指导我从我以前的项目中创建一个库吗?基本上只有两个涉及类:AblistViewBaseActivity和BaseActivity,还有Universal-Image-Loader.jar。因此,如何在eclipse中创建一个新库?非常感谢您的帮助。您好,有关库项目的创建,请查看此处:。您可以将项目“Ultimate Loader”作为库项目,然后在新应用程序中重新使用它,请参见:。