2014-12-08 3 views
-1

이상한 제목에 대해 유감이지만 다른 설명 방법을 찾지 못했습니다. Fragment에는 조각 내의 모든 지침이 완료 될 때까지 표시해야하는 ProgressDialog이 있습니다. 문제는 레이아웃을 변경해야하기 5 초 전에 사라지는 것입니다. 다음은 내 코드입니다 : 모든 것이로드되기 전에 ProgressDialog가 사라집니다.

final View view = inflater.inflate(R.layout.fragment_lista, container, false); 
GridView gv = (GridView) view.findViewById(R.id.gridView); 
Gson gson = new GsonBuilder().serializeNulls().create(); 

ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", "Loading...", true); 

    new Thread(new Runnable() { 
     @Override 
     public void run() 
     { 
      String urlLista = null; 
      try { 
       urlLista = connection("https://www.something.com"); //personal method for this connection 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      String listaTrimmed = urlLista.trim(); 
      ListaManga listaManga = gson.fromJson(listaTrimmed, ListaManga.class); 

      List prov = new ArrayList(); 
      for (int i = 0; i < 15; i++) { 
       prov.add(listaManga.getManga().get(i)); 
      } //ArrayList of 15 elements 

      GridAdapter gridadapter = new GridAdapter(getActivity(), prov); //custom adapter 
      }); 

      getActivity().runOnUiThread(new Runnable() { 
       @Override 
       public void run() 
       { 
        progressDialog.dismiss(); //Here is when the ProgressDialog obviously disappear 
        gv.setAdapter(gridadapter); 
        gridadapter.notifyDataSetChanged(); 
       } 
      }); 
     } 
    }).start(); 

나는 내가 ProgressDialogdismiss()는,이 조각의 모든 것이 성공적으로로드하지만 것입니다 후 내 코드로, 그렇지 않은 것으로 예상 정직해야하는 경우

. 나는 모든 것이로드 될 때까지 5 초를 더 기다려야 만한다. 왜 나는 이해할 수 없다. 나는 여기에 답을 줄 수 있기를 희망한다. 내 코드에 대해 몇 가지 질문이 있으면 그냥 물어보십시오. 나는이 부분을 많이 잘라야합니다.이 질문을 더 미안하게 설명 할 수는 없습니다. 나는 Handler 지연된 게시물 안에 ProgressDialogdismiss()을 넣으려고했으나 작동했지만, 나는 ProgressDialog의 애니메이션을 취소했다.

답변

1

마지막으로 dismiss() 메서드를 호출 해 보았습니까?

gv.setAdapter(gridadapter); 
gridadapter.notifyDataSetChanged(); 
progressDialog.dismiss(); 
+0

예 시도해 보았지만 변경되지 않았습니다. 이상한 것은 디버그 모드에서 어댑터를 설정하고 시간을 필요로하지 않는 "새로 고침"입니다. 그래서 나 자신에게 묻고 : 대화 상자를 닫은 후 응용 프로그램에 "시간이 필요합니까?" –