2015-05-18 3 views
1

Я попытался запустить его на eclip, но он работает, но в студии Android он терпит неудачу. Я не могу найти решение этой проблемы. Я хочу, чтобы загрузить фотографию из openFirst(), Error openFirst()Универсальный загрузчик изображений на Android Studio

public class MidFragment extends Fragment { 
// private ProgressDialog mProgressDialog; 
    private ImageView mImageView; 
    private VideoView mVideoView; 
    private View mView; 
    private DisplayImageOptions mOptions; 
    private ImageLoader mImageLoader; 
    private Context mContext; 
    private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); 
    private ArrayList<ParseObject> objectList = new ArrayList<>(); 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     mView = inflater.inflate(R.layout.mid_fragment, container, false); 
     initComponent(); 
     mContext = container.getContext(); 
     return mView; 

    } 

    private void initComponent() { 
     mImageView = (ImageView)mView.findViewById(R.id.image); 
     mVideoView = (VideoView)mView.findViewById(R.id.video); 
     mImageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 
     mVideoView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      } 
     }); 
//  mProgressDialog = new ProgressDialog(getActivity()); 
//  mProgressDialog.setTitle("Please wait a moment..."); 
//  mProgressDialog.setMessage("Loading..."); 
//  mProgressDialog.setIndeterminate(false); 
    } 

    public void reloadData(int index){ 
//  mProgressDialog.show(); 
     ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Data"); 
     query.whereEqualTo("school",(Number)index); 
     query.findInBackground(new FindCallback<ParseObject>() { 
      @Override 
      public void done(List<ParseObject> list, ParseException e) { 
       objectList = (ArrayList<ParseObject>) list; 
//    mProgressDialog.dismiss(); 
       if (!list.isEmpty()) 
        openFirst(); 
      } 
     }); 
    } 
    private void openFirst(){ 

     mImageLoader = ImageLoader.getInstance(); 
     mImageLoader.init(ImageLoaderConfiguration.createDefault(mContext)); 
     mOptions = new DisplayImageOptions.Builder() 
       .cacheInMemory(true) 
       .cacheOnDisk(true) 
       .considerExifParams(true) 
       .build(); 
      ParseObject parseObject = objectList.get(0); 
      ParseFile parseFile = parseObject.getParseFile("file"); 
      Log.e("****************************",""+parseFile.getUrl()); 
     if (parseObject.getNumber("type") == (Number)1){ 
//   mVideoView.setVisibility(View.VISIBLE); 
//   mImageView.setVisibility(View.GONE); 

//   mVideoView.setVideoURI(); 
     }else{ 
      mVideoView.setVisibility(View.GONE); 
      mImageView.setVisibility(View.VISIBLE); 

      ImageLoader.getInstance().displayImage(parseFile.getUrl(), mImageView, mOptions, animateFirstListener); 

     } 
    } 

    private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener { 

     static final List<String> displayedImages = Collections.synchronizedList(new LinkedList<String>()); 

     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
      if (loadedImage != null) { 
       ImageView imageView = (ImageView) view; 
       boolean firstDisplay = !displayedImages.contains(imageUri); 
       if (firstDisplay) { 
        FadeInBitmapDisplayer.animate(imageView, 500); 
        displayedImages.add(imageUri); 
       } 
      } 
     } 
    } 
} 

Logcat

05-18 23:23:02.258 10496-10496/animuco.com.ckemi E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: animuco.com.ckemi, PID: 10496 
    java.lang.NullPointerException 
      at com.nostra13.universalimageloader.core.ImageLoaderConfiguration$Builder.<init>(ImageLoaderConfiguration.java:196) 
      at com.nostra13.universalimageloader.core.ImageLoaderConfiguration.createDefault(ImageLoaderConfiguration.java:127) 
      at animuco.com.ckemi.Fragment.MidFragment.openFirst(MidFragment.java:99) 
      at animuco.com.ckemi.Fragment.MidFragment.access$200(MidFragment.java:42) 
      at animuco.com.ckemi.Fragment.MidFragment$3.done(MidFragment.java:92) 
      at animuco.com.ckemi.Fragment.MidFragment$3.done(MidFragment.java:86) 
      at com.parse.Parse$6$1.run(Parse.java:944) 
      at android.os.Handler.handleCallback(Handler.java:733) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:212) 
      at android.app.ActivityThread.main(ActivityThread.java:5135) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
      at dalvik.system.NativeStart.main(Native Method) 

спасибо за вашу помощь

ответ

0

Вполне возможно, mContext равна нулю. Поскольку это фрагмент, просто удалите mContext и вместо этого используйте getActivity().

+0

изменен mContext для getActivity(), но он все еще не работает – Leo

+0

Что говорит об ошибке? – inmyth

+0

так же, как указано выше logcat – Leo

Смежные вопросы