1

Android 앱을 개발 중이며 인터넷에서 데이터를 가져와야합니다. Homepage.java에서 "개인 진행 대화 상자"를 선언합니다. 하지 OnCreate() 메소드, 함수Android ProgressDialog 'Spinner'가 사라집니다 (표시되지 않음)

dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true); 

를 호출하고, 데이터를 페치 다른 스레드를 만들고, 마지막 블록에서

"dialog.dismiss()" 

전체 onResume() 코드

아래에 나타낸다 부른다.

@Override 
protected void onResume(){ 
    super.onResume(); 
    Log.e(TAG, "onResume"); 
    dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while..", true); 

    /******Start fetching data.******/ 
    Thread getDataThread = new Thread() { 
     @Override 
     public void run() { 
      try { 
       try { 
        getData(); 
       } catch (JSONException e) { 
        alert_error(); 
        e.printStackTrace(); 
       } catch (IOException e) { 
        alert_error(); 
        e.printStackTrace(); 
       } finally { 
        dialog.dismiss(); 
       } 
      } catch (SQLException e) { 
       alert_error(); 
       e.printStackTrace(); 
      } catch (ExecutionException e) { 
       alert_error(); 
       e.printStackTrace(); 
      } catch (InterruptedException e) { 
       alert_error(); 
       e.printStackTrace(); 
      }finally{ 
       dialog.dismiss(); 
      } 
     } 
    }; 
    getDataThread.start(); 
} 

는 처음에는이. 큰 일 (회 전자를 보여 주었다) 그러나 어떤 시점에서 (I 때 기억하지 않습니다), 대화 상자가 여전히 작동하지만 회가 표시된 장소 (아래로 표시를 사라 빨간색 선은 Spinner is gone

이 대화는 여전히 작동 장소 회 전자 디스플레이)해야하지만, 모든해서 ProgressDialog는 스피너가 없어,이 응용 프로그램에서 어디했다. 내가 변경 한 경우 (도)

를 표시하지 받고 인터넷 부분에서 10 초 동안자는 데이터 아래와 같습니다

@Override 
protected void onResume(){ 
    super.onResume(); 
    Log.e(TAG, "onResume"); 
    dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true); 

    /******Start fetching data.******/ 
Thread getDataThread = new Thread() { 
     @Override 
     public void run() { 

      try { 
       sleep(10*1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
       dialog.dismiss; 
      } 
     } 
    }; 

    getDataThread.start(); 

} 

여전히 회 전자가 나타나지 않습니다.

나는 내 프로젝트에서 전역 설정 또는 값과 관련이있을 수 있습니다 뭔가, 내가 "해서 ProgressDialog 대화 = ProgressDialog.show (홈페이지라는 super.onCreate과 된 setContentView 이외의 다른 하나의 방법으로 빈 작업을 만들 생각합니다. 이 "123", "456", true); "

그리고 여전히 회 전자가 나타나지 않습니다!

그러나 새 프로젝트를 만들고 동일한 코드를 추가하면 작동합니다!

미리 감사드립니다. 휴대 전화 설정에서 개발자 옵션

이동합니다

+0

스피너를 열고 데이터를 가져올 수 있도록 수업을 게시하십시오. – Drv

+0

코드를 여기에 표시하십시오. – Vickyexpert

+0

코드가 추가되었습니다. 이 앱의 개인 정보 보호 문제와 보안 문제로 인해 나머지 부분을 표시 할 수 없습니다. 그러나이 활동 (Homepage.java) 이외에 다른 활동에는 동일한 문제가 발생합니다. 즉, 회 전자가 사라졌습니다. – KHC

답변

3

내가 문제가 휴대 전화 설정에서 생각, 내가 무엇을 당신이해야 할 것은, 한 번 같은 문제가 있었다. 에

턴 전환

다시 시작 응용 프로그램 (내 경우에는 내가 그들에게 빨리 전화 행위를 만들기 위해 해제했다) 희망 회가 될 것입니다.

는 UPDATE : 당신이 그 목적을 위해 Material Dialogs 같은 라이브러리를 시도 할 수 있습니다

또는 그것의 나의 마음에 드는 것 중 하나는, 당신이 할 필요는

compile 'com.afollestad.material-dialogs:core:0.8.6.0' 

및 컴파일

입니다 대화 상자를 표시하려는 위치

new MaterialDialog.Builder(this) 
    .title(R.string.progress_dialog) 
    .content(R.string.please_wait) 
    .progress(true, 0) 
    .show(); 

자세한 정보는 here을 참조하십시오.

희망 하시겠습니까?

+0

확인했는데 이미 켜져있는 것 같습니다. 새 프로젝트를 만들면 회 전자가 표시됩니다. 그러나이 프로젝트에는 수십 개의 활동과 많은 설정 및 속성이 있습니다.이 모든 파일을 새 프로젝트로 전환하는 데 많은 시간이 걸립니다. 어쨌든 고마워, ! – KHC

+0

그건 그렇고, 내 HTC ONE 또는 에뮬레이터에서 실행 여부, 회 전자 그냥 나타나지 않습니다. – KHC

+0

이것을 시도하십시오'dialog = ProgressDialog.show (Homepage.this, Connecting, 잠시 기다려주십시오 ..., true, true); – Max