24
votes

I have an AlertDialog and it's message is displayed, but the color of the text is white. It blends in with the background. I've tried changing the theme but it doesn't work. How do I change the color of the message?

The relevant code:

AlertDialog.Builder builder;
builder = new AlertDialog.Builder(MainActivityGame.this);

builder.setTitle("Name");
builder.setMessage("Are you ");
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        //Submit default name, go home
        boolean isInserted = myDb.insertData(defaultName, triesTaken, difficultyText);
        if (isInserted) {
            Toast.makeText(MainActivityGame.this, "Your name was submitted", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(MainActivityGame.this, "Error, your name wasn't submitted\n Have you entered a default name?\n Go to Settings/Default Name to set it up", Toast.LENGTH_SHORT).show();
        }
        Intent intent = new Intent(MainActivityGame.this, MainActivity.class);
        startActivity(intent);
    }
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        userName.setVisibility(View.VISIBLE);
        submitName.setVisibility(View.VISIBLE);
        submitName.setEnabled(true);
        dialogInterface.dismiss();
    }
});
builder.create();
builder.show();
4

4 Answers

58
votes

you can give style to your alert dialog like this:

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

and the style is like always:

<style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:colorAccent">#f3f3f3</item>
    <item name="android:textColor">#f3f3f3</item>
    <item name="android:textColorPrimary">#f3f3f3</item>
</style>
1
votes

You can either use this method, like @KarimElGhandour mentioned or just create your custom Layout in the res\layout folder and then apply it with alertDialog.setView(LayoutInflater.inflate(R.layout.yourlayout), yourRootView.

0
votes

In the Style even you can change gravity and Mode:

<style name="WelcomeStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:background">#FFD600</item>
        <item name="android:textColor">#C51162</item>
        <item name="android:textColorPrimary">#00B8D4</item>
        <item name="android:gravity">center</item>
        <item name="android:justificationMode">inter_word</item>
    </style>
0
votes
  AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.DialogStyle);

styles.xml

  <style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:colorAccent">#303030</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textColorPrimary">#494949</item>
    <item name="android:windowBackground">#201D1D</item>
</style>