#android #xml #android-layout
#Android #xml #android-макет
Вопрос:
Я использую тему material design в приложении. Я пытаюсь показать диалоговое окно Material Design в приложении, но в диалоговом окне положительные и отрицательные кнопки не отображаются. Ниже приведен мой код:
new MaterialAlertDialogBuilder(getActivity())
.setMessage("Do you want to close this application ?")
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext,"Hello",Toast.LENGTH_SHORT).show();
}
}).show();
themes.xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Caketale" parent="Theme.MaterialComponents.Light">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryVariant">@color/primaryDark</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorSecondary">@color/accent</item>
<item name="colorSecondaryVariant">@color/accent</item>
<!-- Secondary brand color. -->
<!-- <item name="colorSecondary">@color/teal_200</item> -->
<!-- <item name="colorSecondaryVariant">@color/teal_700</item> -->
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
Как я могу решить эту проблему?
Комментарии:
1. куда вы помещаете новый materialertdialogbuilder()? можете ли вы показать полный код?
2. При нажатии кнопки.
Ответ №1:
Чтобы использовать ее с библиотекой дизайна, используйте этот стиль.
<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert">
<item name="colorPrimary">@color/colorAccent</item>
</style>
Затем вы используете его следующим образом.
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AlertDialogTheme);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
Комментарии:
1.
MaterialAlertDialogBuilder.Builder()
отображается красная строка.2. используйте AlertDialog
3. Не могли бы вы отредактировать сообщение, не используя реализацию lambda.