[解決済み] アンドロイド5で、デフォルトのダイアログボタンのテキスト色を変更する方法
2022-04-17 19:43:58
質問
私のアプリにはたくさんのアラートダイアログがあります。デフォルトのレイアウトですが、ダイアログに正と負のボタンを追加しています。そのため、ボタンの色はAndroid 5のデフォルトのテキスト色(緑)になっています。これを変更しようとしましたが、うまくいきませんでした。このテキスト色を変更する方法について何かご存知ですか?
私のカスタムダイアログ
public class MyCustomDialog extends AlertDialog.Builder {
public MyCustomDialog(Context context,String title,String message) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View viewDialog = inflater.inflate(R.layout.dialog_simple, null, false);
TextView titleTextView = (TextView)viewDialog.findViewById(R.id.title);
titleTextView.setText(title);
TextView messageTextView = (TextView)viewDialog.findViewById(R.id.message);
messageTextView.setText(message);
this.setCancelable(false);
this.setView(viewDialog);
} }
ダイアログを作成する。
MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage);
builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
...
}
}).show();
そのnegativeButtonはデフォルトのダイアログボタンで、Android 5 Lollipopのデフォルトの緑色を取ります。
ありがとうございました。
解決方法は?
を作成してみてください。
AlertDialog
オブジェクトを最初に作成し、それを使ってボタンの色を変更する設定をしてから表示します。(なお
builder
オブジェクトを呼び出すのではなく
show()
を呼び出します。
create()
を取得するために
AlertDialog
オブジェクトを作成します。
//1. create a dialog object 'dialog'
MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage);
AlertDialog dialog = builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
...
}
}).create();
//2. now setup to change color of the button
dialog.setOnShowListener( new OnShowListener() {
@Override
public void onShow(DialogInterface arg0) {
dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(COLOR_I_WANT);
}
});
dialog.show()
で行わなければならない理由は
onShow()
ダイアログを作成した後にそのボタンを取得することができないのは、ボタンがまだ作成されていないためです。
を変更しました。
AlertDialog.BUTTON_POSITIVE
から
AlertDialog.BUTTON_NEGATIVE
を追加し、ご質問の変更を反映させました。OK"ボタンがネガティブボタンになるのは変ですが。通常はプラスボタンです。
関連
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Android標準のボタンを色違いに
-
[解決済み] Androidでフローティングアクションボタンの色を変更する
-
[解決済み] アンドロイドでカスタムダイアログボックスを作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
android studioが "The activity must be exported or contain an intent-filter" と表示され実行される。
-
repo: コマンドが見つかりません
-
Android基本アプレット
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
Androidのカラーグラデーション実装のまとめ
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
アンドロイドにおけるトークンの利用
-
[解決済み] Material Designでアラートダイアログのスタイルが決まらない