Что вы можете попробовать, если вам все еще нужен ответ, это AlertDialog.Builder
Объект.В этом объекте вы также можете вызвать метод setMessage("Title")
, который установит заголовок в Dialog
, который вы в конечном итоге создадите с помощью него.Кроме того, вы также можете указать positiveButton
, neutralButton
и negativeButton
(скажем, «Добавить», «ОК» и «Отмена» в этом порядке, хотя вы можете указать свой собственный текст).
Я считаю, что проблема заключается в том, что когда вы звоните Dialog dialog = new Dialog(this)
, вызывается onCreateDialog(int id)
.Но здесь есть одна загвоздка: этот метод вызывается один раз и выдает Dialog
, который используется повторно, когда вам нужен новый Dialog
.Однако Dialog
больше нельзя редактировать (насколько я знаю).Ну, может быть, с помощью метода onPrepareDialog(int id, Dialog dialog)
, но я все еще пытаюсь заставить это работать самостоятельно.Я хочу сказать, что после создания вы больше не можете редактировать интерфейс пользователя в диалоге.Таким образом, способ, который работает, заключается в переопределении onCreateDialog(int id)
в вашем коде, создании AlertDialog.Builder
(или на чем вы основываете Dialog
на: ProgressDialog
/ AlertDialog
/ etc.) И установке заголовка,макет и кнопки здесь.После этого вы можете вызвать метод create()
, который на самом деле создаст Dialog
с вашими настройками.
@Override
public dialog onCreateDialog(int id){
// Create the View to use in the Dialog.
LayoutInflater inflater = getLayoutInflater();
// Inflate the View you want to set as the layout.
final View layout = inflater.inflate(R.layout.your_dialog_layout,
(ViewGroup) findViewById(R.id.your_parent_view);
// Create Dialog Builder Object to create Dialog from.
AlertDialog.Builder adBuilder = new AlertDialog.Builder(this);
// Set the title to use.
adBuilder.setMessage("Your title");
// Add only a positive button.
adBuilder.setPositiveButton("Add", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
// Handle click on positive button here.
}
};
// Set the layout which you want to use (inflated at the beginning).
adBuilder.setLayout(layout);
// After you've set all the options you want to set, call this method.
AlertDialog dialog = adBuilder.create();
return dialog;
}
Это создаст Dialog
с заголовком, установленным на "Your Title",который использует макет, который вы указали, и имеет одну кнопку с текстом «Добавить».Обратите внимание, что основное различие между положительными, нейтральными и отрицательными кнопками заключается в том, что их расположение на Dialog
изменяется соответствующим образом (положительное = влево, нейтральное = среднее и отрицательное = правое).
Для получения дополнительной информации я бы посоветовалчтобы увидеть документацию об этом.