1

ProgressDialog の実行中に Toast を表示することは可能ですか? もしそうなら、それを行う方法についていくつかの例がありますか?

ありがとう。

動作していない私の現在のコード:

final ProgressDialog pd = ProgressDialog.show(
                        BotonesServicio.this, "Medidas",
                        "Comprobando datos");
                new Thread(new Runnable() {
                    public void run() {
                    Toast.makeText(FacturasIFirmar.this,
                        "Trying to show toast", Toast.LENGTH_LONG)
                           .show();

                        pd.dismiss();
                    }
                }).start();
4

1 に答える 1

2

ProgressDialog はスレッドを「フリーズ」するため、他のすべてのアクションは別のスレッドで実行する必要があります。ただし、UI スレッドでトーストを作成する必要があります。

次のようなことを試してください:

    ProgressDialog dialog = new ProgressDialog(context);
    final Toast toast = Toast.makeText(context, "text", Toast.LENGTH_LONG);
    Thread thread = new Thread( new Runnable() {

        public void run() {
            //Calculations here
            try {

                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            toast.show();
        }

    });
    thread.start();
    dialog.show();

UI スレッドと通信する場合は、UI スレッドでアクションを実行するハンドラーにメッセージを送信する AsyncTask または通常のスレッドを使用する必要があります。

幸運を!

于 2012-08-09T17:15:36.000 に答える