3

ユーザーが最初に を入力したときにデータベースにロードするデータがあり、このデータが初めてロードされるときActivityに表示したいと考えています。ProgressDialog私のアクティビティは であり、データが実際にそこにあることを確認するまで、アダプターを渡すまたは呼び出しをExpandableListActivity作成しません。私はこのように見えます:SimpleExpandableListAdaptersetListAdapteronCreate

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mCategoryDbHelper = new CategoryDBHelper(this);

        // Build default categories... if not there yet
        CategoryDbBuilder builder = new CategoryDbBuilder(this);
        if (!builder.hasCategoriesInTable()) {
            showDialog(PROGRESS_DIALOG_ID);
            builder.fillDbWithDefaultCategories();
            removeDialog(PROGRESS_DIALOG_ID);
        }

        populate();
    }

私はonCreateDialogそのように上書きしました:

@Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case PROGRESS_DIALOG_ID: {
                ProgressDialog dialog = new ProgressDialog(this);
                dialog.setMessage("Loading categories for the first time. Please wait...");
                dialog.setIndeterminate(true);
                dialog.setCancelable(false);
                return dialog;
            }       
        }
        return null;
    }

このpopulate()メソッドは、データベースを読み取り、リスト アダプターをセットアップしてから、 を呼び出しますsetListAdapter

これは簡単なように思えますが、非常に面倒な作業です。どんな助けでも大歓迎です。:-)

4

2 に答える 2

2

AsynTaskを使用して、データベースの読み込み処理をバックグラウンド関数と実行後の表示結果に配置します。ここで実行されているバックグラウンドプロセスがasynTaskの例になるまで、何かを処理する別の関数があります

Android-ファイルのアップロードの進行状況をユーザーに表示したい

于 2010-08-30T04:16:58.023 に答える
2

この単純な行を使用するだけです:

mProgressDialog = ProgressDialog.show(context, "", "msg to show", true);

次の方法で却下できます。

mProgressDialog.dismiss();
于 2010-08-30T01:36:57.113 に答える