简体   繁体   中英

How to change the color of an AlertDialog message?

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();

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>

您可以使用这种方法,就像提到的@KarimElGhandour 一样,或者只是在res\\layout文件夹中创建您的自定义Layout ,然后将其应用到alertDialog.setView(LayoutInflater.inflate(R.layout.yourlayout), yourRootView

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>
  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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM