如果没有检测到网络连接,我有以下代码向用户显示一个对话框。
private void createNoNetworkDialog() {
LayoutInflater inflater = LayoutInflater.from(this);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View view = inflater.inflate(R.layout.offline_mode_dialog,null);
builder.setView(view);
builder.show();
}
此对话框中有两个按钮,其中包含为onClick操作定义的方法。我想在按下这些按钮之后关闭对话框弹出窗口。任何想法??
答案 0 :(得分:1)
是的,自dismiss()
引用传递Listener
之后,onClick
致DialogInterface
,这可以解雇。
例如
builder.setPositiveButton ("Yes", new DialogInterface.OnClickListener()
{
public void onClick (DialogInterface dialog, int which)
{
//do stuff beforehand
dialog.dismiss();
}
});
或者如果您的按钮位于布局内,请显示对话框并保留对它的引用(final AlertDialog dialog = builder.show()
)。然后使用dialog.findViewById()
查找相应的按钮。分配正常View.OnClickListener
并使用您持有的对话框参考调用dismiss()
。
答案 1 :(得分:0)
试试这个,我使用自定义布局为我工作。感谢Button
custon_dialog.findViewById()
,然后写OncliclListner()
。它会起作用
final Dialog custon_dialog = new Dialog(Login.this);
custon_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
custon_dialog.setContentView(R.layout.forget_custom_dialog);
custon_dialog.setCancelable(true);
Button submit_Btn = (Button) custon_dialog
.findViewById(R.id.submit);
Button cancel_Btn = (Button) custon_dialog
.findViewById(R.id.cancel);
submit_Btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do your stuf
}
});
cancel_Btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
custon_dialog.dismiss();
}
});
custon_dialog.show();
}