打开新部分时,如何打开并自动关闭警报对话框?

时间:2015-03-19 12:49:54

标签: java android android-studio

当我从操作栏中选择案例2时,我试图在屏幕上弹出一个对话框,最好不要点击按钮。截至目前,我只能让它在onClick上工作,而不是在页面打开时。我如何摆脱按钮,只让它在打开几秒后显示,然后解散?感谢。

case 2:
                // 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("Auto-closing Dialog");
                        builder.setMessage("After 2 second, this dialog will be closed automatically!");
                        builder.setCancelable(true);

                        final AlertDialog dlg = builder.create();

                        dlg.show();

                        final Timer t = new Timer();
                        t.schedule(new TimerTask() {
                            public void run() {
                                dlg.dismiss(); // when the task active then close the dialog
                                t.cancel(); // also just top the timer thread, otherwise, you may receive a crash report
                            }
                        }, 2000); // after 2 second (or 2000 miliseconds), the task will be active.

                    }
                });

4 个答案:

答案 0 :(得分:3)

您可以根据您的要求使用Handle:

case 2:
                // 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("Auto-closing Dialog");
                        builder.setMessage("After 2 second, this dialog will be closed automatically!");
                        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秒后关闭警报对话框。 这是你想要做的吗?

答案 1 :(得分:1)

如果您想隐藏按钮并希望使用点击功能:

Button btnShow = (Button)findViewById(R.id.btn_show);
btnShow.setVisibility(View.GONE);
btnShow.performClick();

答案 2 :(得分:0)

我真的不明白你想说的是什么。你的以下陈述令人困惑

  

当我选择案例2时,我试图在屏幕上弹出一个对话框   来自活动栏,

我不知道案例2和活动栏你是什么意思。但如果它是动作栏并且你在其中使用微调器,那么你可以覆盖以下方法

android.support.v7.app.ActionBar.OnNavigationListener navigationListener = new android.support.v7.app.ActionBar.OnNavigationListener() {

            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                //Here you can implement the case 

因此,当您能够显示对话框时,您可以使用对话框的开始启动计时器,然后您可以在完成计时器时关闭对话框。

我希望这对你有意义。如果您需要帮助,请回复我可以提供源代码。

答案 3 :(得分:0)

<label>Date: <input type="date" ng-value="{{task.date}}" /> </label>