如何自动加载弹出窗口,然后在部分加载后3秒后自动关闭它?

时间:2015-03-19 15:47:50

标签: java android android-activity android-studio

我正在使用名为“导航抽屉活动”的Android Studio模板。它带有一个ActionBar活动和菜单中预装的3个“部分”。

我正在尝试在其中一个部分打开时创建一个“加载”弹出窗口。为此,我打开菜单并选择第2部分。

我只能使用按钮和onClick操作来弄清楚如何执行此操作。我不想要按钮,但我希​​望它在打开部分时自动运行,然后在3秒后解除。这是我到目前为止所提出的:

// get button
                Button btnShow = (Button)findViewById(R.id.btn_show);
                btnShow.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
                        builder.setTitle("Connecting");
                        builder.setMessage("Please wait while we connect to your devices...");
                        builder.setCancelable(true);

                        final AlertDialog dlg = builder.create();

                        dlg.show();

                        Handler mHandler = new Handler();
                        Runnable mRunnable = new Runnable() {

                            public void run() {
                                if (dlg != null && dlg.isShowing()) dlg.dismiss();
                            }
                        };
                        mHandler.postDelayed(mRunnable, 2000);

                    }
                });

2 个答案:

答案 0 :(得分:0)

U =试试这段代码

Runnable mRunnable = new Runnable() {    
       public void run() {
          sleep(3000);
          if (dlg != null && dlg.isShowing()) dlg.dismiss();
       }
    };

答案 1 :(得分:0)

这似乎是最简单的方法。在3000ms后打开和关闭。

final ProgressDialog progress = new ProgressDialog(this);
    progress.setTitle("Connecting");
    progress.setMessage("Please wait while we connect to devices...");
    progress.show();

    Runnable progressRunnable = new Runnable() {

        @Override
        public void run() {
            progress.cancel();
        }
    };

    Handler pdCanceller = new Handler();
    pdCanceller.postDelayed(progressRunnable, 3000);