通过后退按钮取消对话框时如何执行负按钮功能?

时间:2015-02-23 10:01:58

标签: android

我有一个对话框,必须在取消时执行一些代码。我设置了一个否定按钮但是当从后退按钮取消对话框时它没有执行。 这是我的代码。

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("Licence expired");
    builder.setCancelable(false);
    builder.setMessage("Your licence for " + url
            + " has been expired, Please renew it or select another server");
    builder.setPositiveButton("Renew now",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // Open url in webview
                    Intent intent = new Intent(MainActivity.this,
                            WebActivity.class);
                    intent.putExtra("ServerDomain", url);
                    startActivity(intent);
                    /*
                     * URL domain; try { domain = new URL(url);
                     * intent.putExtra("ServerDomain", domain.getHost());
                     * startActivity(intent); } catch (MalformedURLException
                     * e) { e.printStackTrace(); }
                     */

                    /*
                     * String url = "http://www.google.com"; Intent i = new
                     * Intent(Intent.ACTION_VIEW);
                     * i.setData(Uri.parse(url)); startActivity(i);
                     */
                }
            });
    builder.setNegativeButton("Switch Server",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    showServerList();
                }
            });


        builder.create().show();

1 个答案:

答案 0 :(得分:1)

为对话框创建取消侦听器。

builder.setOnCancelListener(new OnCancelListener() {

            @Override
            public void onCancel(DialogInterface dialog) {
                // TODO Auto-generated method stub
                showServerList();
            }
        });