web-dev-qa-db-ja.com

AlertDialogメッセージの色を変更する方法は?

AlertDialogがあり、メッセージが表示されますが、テキストの色は白です。背景に溶け込みます。テーマを変更しようとしましたが、機能しません。メッセージの色を変更するにはどうすればよいですか?

関連するコード:

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();
13
8bit an3

次のようにアラートダイアログにスタイルを指定できます。

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

そしてスタイルはいつものようです:

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

前述の@KarimElGhandourのように this メソッドを使用するか、res\layoutフォルダーにカスタムLayoutを作成してalertDialog.setView(LayoutInflater.inflate(R.layout.yourlayout), yourRootViewで適用できます。