I used AlertDialog to alert user confirm delete. I check on my device (Android 5.1) and it show well
But on some another device (also run Android 5.1), the dialog missed positive and negative button.
I checked and found that devices happen this issue have a medium resolution (960x540, 854x480).
Is resolution relate with this issue ? If not, can you tell me the reason and how to fix this issue ?
My code for display dialog:
public static final Dialog yesNoDialog(Context context, String message, DialogInterface.OnClickListener yesAction, DialogInterface.OnClickListener noAction) { AlertDialog.Builder builder = new AlertDialog.Builder(context,R.style.todoDialogLight); builder.setTitle(context.getString(R.string.app_name)) .setMessage(message) .setCancelable(false) .setPositiveButton("YES", yesAction) .setNegativeButton("NO", noAction); return builder.create(); }
And styles.xml
<style name="todoDialogLight" parent="Theme.AppCompat.Light.Dialog"> <!-- Used for the buttons --> <item name="colorAccent">@color/colorPrimaryDark</item> <item name="android:textStyle">bold</item> <!-- Used for the title and text --> <item name="android:textColorPrimary">@color/colorText</item> <!-- Used for the background --> <!-- <item name="android:background">#4CAF50</item>--> <item name="android:fontFamily">sans-serif</item> <item name="android:windowAnimationStyle">@style/RemindDialogAnimation</item> <item name="android:layout_width">@dimen/width_remind_dialog</item> <item name="android:layout_height">wrap_content</item> </style>
Step 1: Create a XML file: custom_layout. Add the below code in custom_layout. xml. This code defines the alertdialog box dimensions and add a edittext in it.
A simple dialog containing an DatePicker . This class was deprecated in API level 26.
AlertDialog. A dialog that can show a title, up to three buttons, a list of selectable items, or a custom layout.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml.
So the buttons are there for me. Unfortunately, they were white text on white background. It has nothing to do with the resolution but more to do with the theme you are choosing. To solve this you need to set the right text color in your dialog theme.
For example, in styles.xml add
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorPrimary">@color/colorPrimaryDarkBlue</item> </style>
and in your activity add
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MyActivity.this, R.style.MyDialogTheme);
Hope this helps.
@Ali answer is correct but doesn't work with the new Design Library
To use it with the design library, use this style.
<style name="AlertDialogTheme" parent="Theme.MaterialComponents.Light.Dialog.Alert"> <item name="colorPrimary">@color/colorAccent</item> </style>
Then you use it like this.
AlertDialog.Builder(it, R.style.AlertDialogTheme) .setMessage("The message") .setPositiveButton("Yes") { _, _ -> /* Do something*/} .setNegativeButton("No") { _, _ -> } .show()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With