Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在clicklistener上关闭自定义警报对话框_Java_Android_Android Alertdialog_Onclicklistener - Fatal编程技术网

Java 在clicklistener上关闭自定义警报对话框

Java 在clicklistener上关闭自定义警报对话框,java,android,android-alertdialog,onclicklistener,Java,Android,Android Alertdialog,Onclicklistener,我有三个按钮的自定义对话框。 我已经点击了3个按钮的侦听器。。。。 这是代码 public void addDialog() { // TODO Auto-generated method stub AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); // Setting Dialog Title alertDialog.setT

我有三个按钮的自定义对话框。 我已经点击了3个按钮的侦听器。。。。 这是代码

 public void addDialog() {
        // TODO Auto-generated method stub
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
            // Setting Dialog Title
            alertDialog.setTitle("Add From");
            // Setting Dialog Message
            alertDialog.setMessage("Add Number: ");
            LayoutInflater layoutInflater 
            = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view=layoutInflater.inflate(R.layout.dialog_lay,null);

           Button btn_Contact = (Button)view.findViewById(R.id.btn_contact);
           Button btn_SMS = (Button)view.findViewById(R.id.btn_sms);
           Button btn_Manually = (Button)view.findViewById(R.id.btn_manually);
           //  Setting Negative "NO" Button
            alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                // Write your code here to invoke NO event
                Toast.makeText(getApplicationContext(), "You clicked on NO", Toast.LENGTH_SHORT).show();
                dialog.cancel();
                }
            });

            OnClickListener listenerDial = new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
            // i want to close alert dialog here    

            Toast.makeText(getApplicationContext(), "You clicked contact btn", Toast.LENGTH_SHORT).show();

                }
            };

            // add listener to button.
            btn_Contact.setOnClickListener(listenerDial);
            btn_SMS.setOnClickListener(listenerDial);
            btn_Manually.setOnClickListener(listenerDial);
            alertDialog.setView(view);
            alertDialog.show();

    }
我想在按下三个键中的任何一个时关闭此警报对话框。。
任何建议都可以关闭它。

使用
alertDialog.Dislose()
关闭它。

我修改了你的代码,请检查一下

OnClickListener listenerDial = new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
        // i want to close alert dialog here    

        alertDialog.dismiss();
        Toast.makeText(getApplicationContext(), "You clicked contact btn",        
        Toast.LENGTH_SHORT).show();

            }
        };
 public void addDialog() {
    // TODO Auto-generated method stub
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
        // Setting Dialog Title
        alertDialog.setTitle("Add From");
        // Setting Dialog Message
        alertDialog.setMessage("Add Number: ");
        LayoutInflater layoutInflater 
        = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view=layoutInflater.inflate(R.layout.dialog_lay,null);

       Button btn_Contact = (Button)view.findViewById(R.id.btn_contact);
       Button btn_SMS = (Button)findViewById(R.id.btn_sms);
       Button btn_Manually = (Button)findViewById(R.id.btn_manually);
       //  Setting Negative "NO" Button
        alertDialog.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            // Write your code here to invoke NO event
            Toast.makeText(getApplicationContext(), "You clicked on NO", Toast.LENGTH_SHORT).show();
            // dialog.dimiss(); // dialog will dismiss when you click on this button un-comment it so it works.
            }
        });

        OnClickListener listenerDial = new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            dialog.dimiss(); // dialog will dismiss when you click on this button

        Toast.makeText(getApplicationContext(), "You clicked contact btn", Toast.LENGTH_SHORT).show();

            }
        };

        // add listener to button.
        btn_Contact.setOnClickListener(listenerDial);
        btn_SMS.setOnClickListener(listenerDial);
        btn_Manually.setOnClickListener(listenerDial);
        alertDialog.setView(view);
        alertDialog.show();

}
刚刚加上

final AlertDialog Dial = alertDialog.create(); 
和更改

dialog.setView(layout); to Dial.setView(layout);

现在只需拨打
拨号即可;在onclick listener中
。。对我来说效果很好。

我已经检查了你的答案,但一单击它就会崩溃。看到这个,你也可以尝试MainActivity。这个。alertDialog。Disclose();我想点击按钮,打开另一个活动。和关闭dailog,但对话框未关闭。未定义对话框引用。在按钮findViewById中,您必须像此alertDialog.findViewById一样执行此操作。这将将按钮引用到对话框。试试看,如果它不起作用,你能发布日志吗!