Java 在clicklistener上关闭自定义警报对话框
我有三个按钮的自定义对话框。 我已经点击了3个按钮的侦听器。。。。 这是代码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
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一样执行此操作。这将将按钮引用到对话框。试试看,如果它不起作用,你能发布日志吗!