1

いくつかのアクティビティを含むタブレイアウトがあり、タブから別のタブへの変更には数秒かかります(大量のデータが必要なため)。ロード中に、ロードを示すダイアログを表示したい。プログレスバーを使用して非常に単純なダイアログを作成しましたが、いつ呼び出すか、いつ閉じるかがわかりません。

 loading = new Dialog(FatActivity.this);
        loading.requestWindowFeature(Window.FEATURE_NO_TITLE);
        loading.setContentView(R.layout.dialog_loading);
        loading.show();

すべてのタブにはアクティビティが表示されますが、onCreate()メソッド(その直後、つまり最初の行)に配置すると、アクティビティが読み込まれた後にのみ表示されます。それで、どこに置くべきですか、またはロード画面を作成するのが間違ったアプローチである場合、これをどのように行うべきですか?私はこれについて考えていました。なぜなら、それを呼び出して、onCreate()の最後でそれを閉じる必要があるからです。また、タブレイアウトであるため、タブにonclicklistenerがないため、使用することもできません。

前もって感謝します!

4

2 に答える 2

0

AsyncTaskを使用して、ロード画面を表示できます...

onCreate()
{
    dialog.show();
    new LoadData().execute(null);
}
--------------------------------------------------------------------------     
    private class LoadData extends AsyncTask<URL, Integer, Boolean> {
         protected Long doInBackground(URL... urls) {
             // your code to load data here <------
             return true;
         }

         protected void onPostExecute(Boolean result) {
             dialog.dismiss();
         }
     }
于 2012-05-26T14:27:44.367 に答える
0

GtumcaがAsyncTaskを使用すると言ったように、しかし、Androidの最新バージョンではFragmentsとFragmentActivityが置き換えられたため、TabHostは非推奨になったことを報告したいと思います。このようにして、TabHostの代わりに、コードがより理解しやすく、適切に分割されます。

于 2012-05-26T14:31:30.837 に答える