2014-12-18 4 views
0

Google에서 내 의견을 업데이트하기 위해 SwipeRefreshLayout을 사용합니다. 그리고 나는 문제가있다. 내가 직장에 있다면 onRefresh()은 다른 fragment으로 바뀌고 두 번째 프로그램은 충돌합니다.SwipeRefreshLayout을 사용할 때 응용 프로그램이 다운 됨

다음과 같이 문제가 발생합니다. MyAsincTask을 실행하는 onRefresh() 메서드를 실행합니다. 그런 다음 새 fragment을 켭니다. 그리고 내가 새로 왔을 때 fragment MyAsincTask이 종료되고 데이터 어댑터를 설정하려고합니다. 그러나 나는 이미 다른 곳에있다. 응용 프로그램이 충돌합니다. 나는 ProgressDialog - progressDialog.setCancelable(false);을 사용하여 그것을 해결하는 방법을 안다. MyAsincTask 작업을 마칠 때까지 새로운 조각으로 이동할 수 없습니다. 그러나 그것을 구현하는 방법 SwipeRefreshLayout?

MY CODE :

swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_employe_list); 
     swipeLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.CYAN); 
     swipeLayout.setOnRefreshListener(this); 

@Override 
    public void onRefresh() { 
     if (InternetResiver.isOnline(getActivity())) { 
      setData(); 
     } else { 
      AlertDialog alert = InternetResiver.getAlertDialog(getActivity()); 
      alert.show(); 
     } 
    } 

MY ERROR :

12-18 03:46:17.655  456-456/com.managment.pavel.managmentgradle E/libEGL﹕ call to OpenGL ES API with no current context (logged once per thread) 
12-18 03:46:32.085  456-456/com.managment.pavel.managmentgradle E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    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 com.managment.pavel.managmentgradle.fragments.adapters.EmployeeListAdapter.<init>(EmployeeListAdapter.java:52) 
      at com.managment.pavel.managmentgradle.fragments.EmployeessList$1.onPostExecute(EmployeessList.java:109) 
      at com.managment.pavel.managmentgradle.fragments.EmployeessList$1.onPostExecute(EmployeessList.java:69) 
      at android.os.AsyncTask.finish(AsyncTask.java:417) 
      at android.os.AsyncTask.access$300(AsyncTask.java:127) 
      at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:130) 
      at android.app.ActivityThread.main(ActivityThread.java:3683) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:507) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
      at dalvik.system.NativeStart.main(Native Method) 

편집 :

public class EmployeeListAdapter extends SectionedBaseAdapter { 
    private ArrayList<String> sections; 
    private ArrayList<List<EmployeesListBean>> employees; 
    private ImageLoader imageLoader = ImageLoader.getInstance(); 
    private DisplayImageOptions options; 
    private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); 
    private Context context; 

    public EmployeeListAdapter(ArrayList<EmployeesListBean> employeesListBeans, Context context) { 
     this.context = context; 

     Map<String, List<EmployeesListBean>> map = new HashMap<>(); 
     for (EmployeesListBean employeesListBean : employeesListBeans) { 
      if (!map.containsKey(employeesListBean.getDepart_name())) 
       map.put(employeesListBean.getDepart_name(), new ArrayList<EmployeesListBean>()); 
      map.get(employeesListBean.getDepart_name()).add(employeesListBean); 
     } 
     sections = new ArrayList<>(map.keySet()); 
     employees = new ArrayList<>(map.values()); 
     options = new DisplayImageOptions.Builder() 
       .showImageOnLoading(R.drawable.ic_stub) 
       .showImageForEmptyUri(R.drawable.ic_empty) 
       .showImageOnFail(R.drawable.ic_error) 
       .cacheInMemory(true) 
       .cacheOnDisk(true) 
       .considerExifParams(true) 
       .build(); 
     imageLoader.init(ImageLoaderConfiguration.createDefault(context)); 
    } 
+0

어디서 imageloader를 초기화할까요? – jenuine

답변

0

참조 예외 스택 추적. java.lang.NullPointerException at com.nostra13.universalimageloader.core.ImageLoaderConfiguration$Builder.<init>(ImageLoaderConfiguration.java:196)

그래서 universalimageloader를 초기화 보여주는

그 다음 내가 그것을 해결 바랍니다.

+0

나는 당신의 대답을 이해하지 못했습니다. 오류가 있습니다. 그것을 고치는 방법? –

관련 문제