[解決済み] appCompat 22.1以降の新しいAlertDialogの使用方法とスタイルについて
2022-04-25 01:42:42
質問
デフォルトのandroidから移行しようとしています。
AlertDialog
を appCompat-22.1 に含まれる新しいものに変更しました。
これまでのところ、私はあなたが
android.support.v7.app.AlertDialog
パッケージを使用することができます。
しかし、どのようにスタイルを設定すればよいのでしょうか?例えば、ボタンの色、タイトルの色、メッセージの色、背景の色などを変更することができますか?
どのように解決するのですか?
を作成する際に
AlertDialog
では、使用するテーマを設定することができます。
例 - ダイアログを作成する
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyAlertDialogStyle);
builder.setTitle("AppCompatDialog");
builder.setMessage("Lorem ipsum dolor...");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
styles.xml - カスタムスタイル
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
<!-- Used for the buttons -->
<item name="colorAccent">#FFC107</item>
<!-- Used for the title and text -->
<item name="android:textColorPrimary">#FFFFFF</item>
<!-- Used for the background -->
<item name="android:background">#4CAF50</item>
</style>
結果
編集
タイトルのアピアランスを変更するには、次のようにします。まず、新しいスタイルを追加します。
<style name="MyTitleTextStyle">
<item name="android:textColor">#FFEB3B</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Title</item>
</style>
でこのスタイルを参照し、その後
MyAlertDialogStyle
:
<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">
...
<item name="android:windowTitleStyle">@style/MyTitleTextStyle</item>
</style>
この方法では、異なる
textColor
を使用してメッセージに
android:textColorPrimary
で、タイトルには別のスタイルを指定します。
関連
-
adb devices OffLine Solution(オフラインソリューション
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
Android基本アプレット
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
Android Studio常见错误之:Rendering Problems/The following classes could not be instantiated
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] AppCompat v22.1.0 にアップグレードしたところ、IllegalArgumentException が発生するようになりました。AppCompat は現在のテーマ機能をサポートしていません。
-
[解決済み】AndroidのMaterial DesignとAppCompatでボタンを彩る
-
[解決済み] アンドロイド5で、デフォルトのダイアログボタンのテキスト色を変更する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このアクティビティでは、Theme.AppCompatテーマ(またはその子孫)を使用する必要があります。
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
アンドロイドスタジオでJunitのエラー問題を解決する
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
アプリケーションがメインスレッドで過剰に作業している可能性があります。
-
JVMのエラーに遭遇しました。Java Runtime Environmentによって致命的なエラーが検出されました。
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
アンドロイドのエリプサイズを使用する