Q:

Как закрыть AlertDialog с помощью кнопки в его разметке?

Создаю AlertDialog:
@Override
protected Dialog onCreateDialog(int id) {
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle(R.string.dlg_fonts);
    view = (LinearLayout) getLayoutInflater().inflate(R.layout.dialog, null);
    adb.setView(view);
    tvDlg = (TextView) view.findViewById(R.id.tvDlg);
    etDlg = (EditText) view.findViewById(R.id.etDlg);
    btnDlgOk = (Button)  view.findViewById(R.id.btnDlgOk);
    btnDlgCancel = (Button)  view.findViewById(R.id.btnDlgCancel);
    return adb.create();
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
    super.onPrepareDialog(id, dialog);

}
// В разметке есть событие на кнопку onClick
public void onclDlgOk(View view){
}

Как сделать, чтобы после нажатия на кнопку диалоговое окно закрылось?

A:

Попробуйте так:
@Override
protected Dialog onCreateDialog(int id) {
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setTitle(R.string.dlg_fonts);
    view = (LinearLayout) getLayoutInflater().inflate(R.layout.dialog, null);
    adb.setView(view);
    tvDlg = (TextView) view.findViewById(R.id.tvDlg);
    etDlg = (EditText) view.findViewById(R.id.etDlg);
    btnDlgOk = (Button)  view.findViewById(R.id.btnDlgOk);
    btnDlgCancel = (Button)  view.findViewById(R.id.btnDlgCancel);

    Dialog dialog = adb.create();

    btnDlgCancel.setOnClickListener(new View.OnClickListener(){public void onClick(View v){dialog.dismiss();}});

    return dialog ;
}

