0

私はAndroidにクエリアプリケーションデータベースを作成し、ユーザーが検索の進行状況を確認できるように進行状況バーを配置し、アラートダイアログを配置しました。

問題は次のとおりです。

-すべてが完璧です、私が言うと、スレッド アクティビティが変更されますが、画面のプログレス バーで AlertDialog アクティビティから戻ることが含まれます。

ボタンなしで、スレッドが 4 に到達したときに AlertDialog が閉じられたことをどのように言うことができるかを知りたかったのです。

 private void AlertCargando(){

   final Handler mHandler = new Handler();
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(Buscar.this);

    //Crea el dialogo
    alertDialog.setTitle("Buscando...");

    final ProgressBar barra = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
    barra.setProgress(0);
    barra.setMax(4);
    mProgressStatus = 0;

    new Thread(new Runnable() {
        public void run() {
            ComprobarDatos();

            while (mProgressStatus < 4) {

                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                mProgressStatus = SumaUno(mProgressStatus);

                mHandler.post(new Runnable() {
                    public void run() {
                        barra.setProgress(mProgressStatus);

                    }
                });
            }

//Here i want close the alerDialog
            if(mProgressStatus == 4){
        startActivity(i);
                               }


        }
    }).start();


    alertDialog.setView(barra);
    // Showing Alert Message

    alertDialog.show();
}

そしてこちらがメソッド「スマウノ」

private int SumaUno(int numero){

    numero = numero++;

    return numero;
}

すべてが完全に機能していることを思い出してください。アラートダイアログがどれだけ近いか知りたいだけです。

ありがとう=D

4

2 に答える 2

0

使用AsyncTaskするのが最善のアイデアです。それをしたくない場合は、次のことを試してください

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

AlertDialog alert = builder.create();

alert.show();

alert.cancel()その後、アラートでメソッドを呼び出すことができます(ビルダーではありません)

于 2013-11-10T01:37:18.637 に答える