如何使用android中的样式更改“警报”对话框中的列表视图文本颜色?

时间:2017-06-30 12:40:08

标签: android text android-alertdialog

我已使用此行向对话框添加样式

AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.AlertDialogStyle)

我可以设置标题名称的样式,但列表中的文字颜色仅为黑色。

    public class NotificationModeDialog extends DialogFragment {
        public ArrayList<String>  list = new ArrayList<>(); //initialized the array of list
        public  int i;
        final String notificationListItems[]={
    "CallAlert","address","name","Message","id","contact","ymail","Gmail"};//the data to be displayed in dialog box

        @NonNull
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            final boolean[] notificationSelected={false,false,false,false,false,false,false,false};//initializing the starting state

//initializing the alertDialog here AlertDialogStyle is added for styling
            AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.AlertDialogStyle)
                    .setTitle("Notification Mode")
                    .setMultiChoiceItems(notificationListItems, notificationSelected ,new DialogInterface.OnMultiChoiceClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int j, boolean isChecked) {
                            if(isChecked)
                            {
                                list.add(notificationListItems[j]); //add items 
                            }
                            else if(list.contains(notificationListItems[j]))
                            {
                                list.remove(notificationListItems[j]);//remove items
                            }

                        }
                    })
                             //when person click on "ok" this statement is called 
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int j) {

                        }
                    })

                    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel(); //cancel the changes and turn of the dialog box
                        }
                    }).create();//this will create the dialog box
            dialog.show(); //show the dialog box
            return dialog; //return the dialog box to layout
            }
    }

这是styles.xml代码。

  <!-- Styling the alert BOX -->
    <style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog">

        <!-- Used for the buttons -->
        <item name="colorAccent">#e4e4e4</item>
        <!-- Used for the title and text -->
        <item name="android:textColorPrimary">#FFFFFF</item>
        <!-- Used for the background -->
        <item name="android:background">#64f24c49</item>

    </style>

1 个答案:

答案 0 :(得分:0)

styles.xml

中创建警告对话框样式
  <style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColor">@color/white</item>
    </style>

然后将样式添加到当前应用主题样式:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item> 

        <!-- Alert Dialog Style -->
        <item name="android:alertDialogStyle">@style/MyAlertDialogStyle</item>
    </style>