Я пишу свое первое приложение для Android, и у меня есть одно действие, которое я хотел бы отобразить в двух отдельных диалогах:
Диалог A - Простой AlertDialog, который показывает текст и удаляется
Диалог B - всплывающее окно «Сохранить как» с кнопками EditText и Save и Cancel
Я нашел учебные пособия по созданию AlertDialogs и Custom Dialogs, и мне удалось заставить каждый из них работать, но только по отдельности. Когда я пытаюсь поместить весь код в оператор switch / case в методе onCreateDialog, происходит сбой приложения при запуске AlertDialog.
Вот мой код onCreateDialog:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
// Display dialog
case 0:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setMessage(messageText);
alertDialog.setNegativeButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
return alertDialog.create();
// Save As dialog
case 1:
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.save_as);
dialog.setTitle("Save as:");
Button cancel = (Button)findViewById(R.id.cancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
return dialog;
}
return null;
}
Любой случай будет работать сам по себе, но приложение вылетает, когда я помещаю оба случая.
Вот XML для пользовательского макета диалога:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:text="Save this list as:"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/list_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:drawable/bottom_bar"
android:paddingLeft="4.0dip"
android:paddingTop="5.0dip"
android:paddingRight="4.0dip"
android:paddingBottom="1.0dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/save"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:text="Save"
android:layout_weight="1.0"
></Button>
<Button
android:id="@+id/cancel"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:text="Cancel"
android:layout_weight="1.0"
></Button>
</LinearLayout>
</LinearLayout>
Должен ли я придерживаться только одного формата или другого? Я также читал, что DialogFragments сейчас предпочтительнее, но я пока не нашел хороших учебных пособий для начинающих. Любые предложения будут с благодарностью.