2016-09-18 25 views
0

私はフラグメントを持っており、そのonStart()で15秒間長いBDクエリーをたくさん作っていました。 「ローディングサークル」を使って進捗ダイアログを表示したい。 私のアプリにはMainというアクティビティが1つしかありません。これは、最初のフラグメントを開始し、これから、私は他のフラグメントにジャンプし、次のフラグメントに対しても同様にジャンプします。 1つのフラグメントから他のフラグメントに渡すために、私は次の静的メソッドを使用します。フラグメントのダイアログの表示ダイアログ

public static startFragment(FragmentTransaction FT, Fragment newFragmentToOpen) 
{ 
    FT.replace(R.id.Container, newFragmentToOpen); 
    FT.addToBackStack(null); 
    FT.commit(); 
} 

私はその方法で進捗ダイアログを開始するスレッドを作成しようとしましたが、それは機能しませんでした。私は、フラグメントのOnCreate()メソッドでダイアログを開始しようとしましたが、それもうまくいきませんでした。

どうすればよいですか?

ありがとうございます。

(編集) フラグメントの中で、onCreateView()とonViewCreated()でProgress Dialogを開始しようとしました。それはうまくいきませんでしたが、ステップバイステップでデバッグすると、フローがonStart()(DBを使用して10秒間)に移動する瞬間に、ProgressDialogが停止することがわかりました。

このテストでは、ProgressDialogが正しく表示されていることを理解していますが、onStart()に行くと消えます。

(編集)

問題は、フラグメントのONSTART()で、私は要素をaddking、ビューに取り組んでいますということ、です。私は、これらの要素が読み込まれている間、ダイアログが表示される必要があります。なぜなら、ユーザーにとって、アプリケーションが読み込まれている間にsttopedされているように見えるからです。フラグメントのビューが完全にロードされると進捗ダイアログがちょうど始まるので、

public static startFragment(FragmentTransaction FT, Fragment newFragmentToOpen) 
{ 
    startProgressDialog(); 

    FT.replace(R.id.container, newFragmentToOpen); 
    FT.addToBackStack(null); 
    FT.commit(); 

    stopProgressDialog(); 
} 

しかし、それdoesn't作品:私はこのようなものが必要でしょう。

+0

先ほど試したことのあるコードを追加してください。質問の理解に役立ちます。 – W4R10CK

+0

コードが多すぎます。私が記事で言うように、私のアプリはFragmentsでベースされています。私は断片をたくさん持っています。断片は次々と呼ばれます。私は静的メソッド(最初の投稿で示された)を使用します。フラグメントでは、OnStart()でDB文をたくさん作成してから、ロードする10秒間に必要なものが表示されます。 –

答えて

0

に表示されている場合、これがあるので、onCreateView()にダイアログを表示してみてください。

  1. STATIC変数を作成するには、フラグメントのOnStart()で使用する情報が含まれています。
  2. フラグメントのトランジションを行う前に、進捗ダイアログを開始してください。
  3. 進捗状況ダイアログを開始した後、スレッドを開始します。
  4. (スレッドに)静的なバールに情報をロードします。
  5. (スレッドに)すべての情報を読み込んだら、進捗ダイアログを閉じます。
  6. (スレッドに)読み込むフラグメントを呼び出します。
  7. スレッドの終了。
  8. フラグメントには、OnStart()で、STATIC変数から情報を取得します。
0

あなたは、UIコンポーネントが、私は解決策を見つけたFragment

+0

それはうまくいきません。私はこれを持っています: プライベート静的ProgressDialog espera;オーバーライド@ NULL可能 パブリックビューonCreateView(LayoutInflater用インフレータ、のViewGroup容器、バンドルsavedInstanceState){ LayoutInflaterのinflador @ 。 inflador = inflater; espera =新しいProgressDialog(inflador.getContext()); espera.setMessage( "読み込み中"); espera.setIndeterminate(true); espera.show(); 戻り値inflador.inflate(R.layout.layout_fragment_clasificaciones_wec、container、false); } onStart()で "show"を呼び出そうとしました。 –

+0

新しいProgressDialog(inflador.getContext())の代わりに新しいProgressDialog(getActivity())を試しました –

+0

これはうまくいきません。私はonViewCreated()メソッドで作業しようとしていますが、結果はありません。 –

関連する問題