我想在不使用自定义布局的情况下更改AlertDialog标题颜色和背景颜色.我的要求
我尝试了以下代码,但无法正常工作.
final CharSequence[] items = {" Visiting Card", "Prescription Letter"};AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setMessage(message) .setTitle(Title).setCancelable(false); builder.setItems(items, (dialog, item) -> { }); AlertDialog dialog = builder.create(); dialog.show(); int textVIEwID = dialog.getContext().getResources().getIDentifIEr("androID:ID/alertTitle", null, null); TextVIEw tv = dialog.findVIEwByID(textVIEwID); // It always returns null if (tv != null) { tv.setTextcolor(activity.getResources().getcolor(R.color.white)); tv.setBackgroundcolor(activity.getResources().getcolor(R.color.colorPrimary));}
使用我尝试过的以下几行,但它总是在findVIEwByID中返回null,
int textVIEwID = dialog.getContext().getResources().getIDentifIEr("androID:ID/alertTitle", null, null);TextVIEw tv = dialog.findVIEwByID(textVIEwID);
我也尝试使用样式,但是它只会更改标题文字的颜色,
<style name="AppCompatAlertDialogStyle" parent="theme.AppCompat.light.Dialog.Alert"> <item name="colorAccent">@color/colorAccent</item> <item name="androID:background">#ffffff</item> <item name="androID:textcolor">@color/white</item> <item name="androID:headerBackground">@color/colorPrimary</item></style>
解决方法:
您可以在警报对话框中使用自定义标题:
TextVIEw textVIEw = new TextVIEw(context);textVIEw.setText("Select an option");textVIEw.setpadding(20, 30, 20, 30);textVIEw.setTextSize(20F);textVIEw.setBackgroundcolor(color.CYAN);textVIEw.setTextcolor(color.WHITE);final CharSequence[] items = {"Visiting Card", "Prescription Letter"};AlertDialog.Builder builder = new AlertDialog.Builder(context);builder.setCustomTitle(textVIEw);builder.setItems(items, (dialog, item) -> { }).show();
总结 以上是内存溢出为你收集整理的Android:如何在不使用自定义布局的情况下更改AlertDialog标题文本颜色和背景颜色?全部内容,希望文章能够帮你解决Android:如何在不使用自定义布局的情况下更改AlertDialog标题文本颜色和背景颜色?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)