Добавить положительную кнопку в диалог

У меня очень простой пользовательский диалог, и я не хочу добавлять положительную кнопку без необходимости изменять файл XML, так же, как вы делали бы это с помощью AlertDialog, но я не знаю, возможно ли это. Это код:

final Dialog dialog = new Dialog(MyActivity.this); dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON); dialog.setContentView(R.layout.dialog); dialog.setTitle("Settings"); dialog.show(); 

Вы должны использовать строитель.

 LayoutInflater inflater = LayoutInflater.from(this); View dialog_layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.dialog_root_layout)); AlertDialog.Builder db = new AlertDialog.Builder(MyActivity.this); db.setView(dialog_layout); db.setTitle("settings"); db.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); AlertDialog dialog = db.show(); 

Вы можете использовать класс AlertDialog.Builder:

http://developer.android.com/reference/android/app/AlertDialog.Builder.html

Создайте новый экземпляр с помощью AlertDialog.Builder myAlertDialogBuilder = new AlertDialog.Builder(context) . Затем используйте такие методы, как setTitle() и setView() чтобы настроить его. Этот класс также имеет методы настройки кнопок. setPositiveButton(String, DialogInterface.OnClickListener) чтобы настроить свои кнопки. Наконец, используйте AlertDialog myAlertDialog = myAlertDialogBuilder.create() чтобы получить ваш экземпляр AlertDialog, который затем можно дополнительно настроить с помощью таких методов, как setCancelable() .

Изменить: Кроме того, из документов: http://developer.android.com/guide/topics/ui/dialogs.html

«Класс Dialog является базовым классом для создания диалоговых окон. Однако вы обычно не должны создавать экземпляр диалогового окна напрямую. Вместо этого вы должны использовать один из … подклассов"

Если вы действительно не хотите использовать AlertDialog, вероятно, лучше всего расширить класс Dialog, а не использовать его как есть.

Вы также можете использовать эту функцию

 public void showMessage(String title,String message) { AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setCancelable(true); builder.setTitle(title); builder.setMessage(message); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); builder.show(); }