1

アンドロイドアプリで作業しています。インターネットからデータを取得する必要があります。 Homepage.javaに「私の進捗状況ダイアログ」を宣言します。 のonCreate()メソッドは、Android ProgressDialog「Spinner」が消える(表示されません)

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

関数を呼び出し、データをフェッチする別のスレッドを作成し、最終的にはブロックで、全体onResume()コードを以下に示す

"dialog.dismiss()" 

を呼び出します。まず

@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(); 
} 

、これは (スピナーを示した)。素晴らしい仕事しかし、いくつかの点で(私は時に覚えていない)、ダイアログがまだ動作しますが、スピナーはでマークされた場所(以下のように ショーを消えます赤い線は、ダイアログはまだ動作しますが、すべてのProgressDialogはどこでもこのアプリから呼び出され、スピナーがなくなって Spinner is gone

)スピナーディスプレイ場所でなければなりません。(でも表示されていない)

私は取得を変更した場合インターネットの部分から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(); 

} 

スピナーはまだ表示されません。

私はそれが私のプロジェクトのグローバル設定または値に関連したものになるかもしれないと思う、私はsuper.onCreateとsetContentView 以外の唯一の方法で空のアクティビティを作成して、私は「ProgressDialogダイアログ= ProgressDialog.show(ホームページ と呼ばれます。これは、 "123"、 "456"、true); "

とスピナーがまだ表示されません!

しかし、私は新しいプロジェクトを作成して同じコードを追加しても動作します!

ありがとうございます!お使いの携帯電話の設定で、開発者の選択肢に

ゴー:

+0

スピナーを開いてデータを取得するクラスを投稿してください。 – Drv

+0

コードをここに表示 – Vickyexpert

+0

コードが追加されました。このアプリのプライバシーに関する懸念やセキュリティ上の問題のため、残りの部分を表示することはできません。しかし、このアクティビティ(Homepage.java)以外に、他のアクティビティも同じ問題に直面しています。これはスピナーがなくなったことです。 – KHC

答えて

3

が、私は問題があなたの携帯電話の設定であると思うが、私は何をする必要があり、一度に同じ問題がありました。

ターンに移行(私の場合は、携帯電話の行為が速く作るためにそれらをオフにしていた)

再起動アプリとうまくいけば、スピナーがあるでしょう。

UPDATE:

それとも、その目的のためにMaterial Dialogsのようなライブラリーを試すことができ、お気に入りのその1、すべてを行う必要が

コンパイル

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

関連する問題