如何在Android中超时AlertDialog?

时间:2013-07-13 09:22:02

标签: android alertdialog

如何在alertdialog中处理超时。它有标准的是/否按钮,但如果用户在5分钟内没有按任何东西,我想调用无按钮代码。 我在Android页面中查看了这个类,并且没有可以调用来设置超时的函数。

3 个答案:

答案 0 :(得分:6)

我使用Dialog来实现此目的,而不是使用警告对话框。

new Handler().postDelayed(new Runnable() {

    public void run() {
        yourDialogObj.dismiss();
    }
}, 2000);

这里2000是毫秒,

希望这有帮助

答案 1 :(得分:5)

这是一个例子,希望对你有帮助。

public class MainActivity extends Activity {

    static final int TIME_OUT = 5000;

    static final int MSG_DISMISS_DIALOG = 0;

    private AlertDialog mAlertDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        createDialog();
    }

    private Handler mHandler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
            case MSG_DISMISS_DIALOG:
                if (mAlertDialog != null && mAlertDialog.isShowing()) {
                    mAlertDialog.dismiss();
                }
                break;

            default:
                break;
            }
        }
    };

    private void createDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setPositiveButton("OK", null)
            .setNegativeButton("cacel", null);
        mAlertDialog = builder.create();
        mAlertDialog.show();
        // dismiss dialog in TIME_OUT ms
        mHandler.sendEmptyMessageDelayed(MSG_DISMISS_DIALOG, TIME_OUT);
    }
}

答案 2 :(得分:1)

您可以使用Handler解决问题。 你只需要一个倒数计时器like this page

它让您了解如何做到这一点。 希望它可以帮到你。