#android #dialog #dismiss
#Android #диалог #отклонить
Вопрос:
Hi there,
@Override
protected Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
inviteView = getLayoutInflater().inflate(R.layout.invite_dialog, null);
builder.setView(inviteView);
sendSmsButton = (Button) inviteView.findViewById(R.id.sendSMSButton);
sendEmailButton = (Button) inviteView.findViewById(R.id.sendEmailButton);
builder.setTitle(R.string.invite_callrz_title);
sendSmsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
sendEmailButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
builder.setNegativeButton(R.string.cancelItem,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return builder.create();
}
У меня есть пользовательский макет с 2 кнопками на нем.Я также использую nagativeButton по умолчанию для отключения диалога. Мой вопрос в том, что я хотел бы отключить панель диалога при нажатии пользовательских кнопок. В принципе, когда кнопка нажата, она выполнит некоторые действия и удалит диалоговое окно. какой метод я должен вызвать?
Комментарии:
1. что произойдет, если вы введете dialog.cancel(); в метод sendEmailButton или метод sendSmsButton click?
2. я пробовал, что не сработало. потому что он жалуется, что у него нет DialogInterface. Но у меня это сработало. в принципе, я могу вызвать dismissDialog (int id); из activity, чтобы закрыть панель диалога.
Ответ №1:
попробуйте это
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog alertDialog;
alertDialog = builder.create();
sendSmsButton = (Button) builder.findViewById(R.id.sendSMSButton);
sendSmsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
alertDialog.dismiss();
}
});