Настройка диалога путем расширения Dialog или AlertDialog
Я хочу сделать заказ Dialog
, Поскольку мне не нравится его стиль, я хочу иметь прямоугольник с закругленными углами, а не острые углы. Я знаю, как реализовать это по теме в AndroidManifest.xml
Например, я использую:
android:theme="@style/Theme.CustomDialog"
А также Theme.CustomDialog.xml
:
<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/filled_box</item>
<item name="android:windowNoTitle">true</item>
filled_box.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff"/>
<stroke android:width="3dp" color="#ffff8080"/>
<corners android:radius="30dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
Как я могу реализовать аналогичный результат путем расширения Dialog
или же AlertDialog
?
1 ответ
В конструкторе вашего класса, который расширяет вызов Dialog super(context, R.style.CustomDialog);
Я делал это много раз для создания пользовательских диалогов с конкретными темами.
Однако, если тема - это единственное, что вы хотите изменить в диалоге, вы можете попробовать создать экземпляр класса Dialog и передать ему идентификатор темы, например: Dialog dialog = new Dialog(context, R.style.CustomDialog);
Пример расширения диалога:
public class MyDialog extends Dialog
{
public MyDialog(final Context context)
{
// Set your theme here
super(context, R.style.MyDialogTheme);
// This is the layout XML file that describes your Dialog layout
this.setContentView(R.layout.myDialogLayout);
}
}
Остальной код, который вы добавите в этот класс, будет в значительной степени похож на то, что вы написали бы в классе Activity.