AlertDialog更改标题颜色,字体等

更改AlertDialog标题的方法google目前没有提供,只能通过其他办法

一种办法是:首先在源代码中找到有个叫AlertController的类,这个类就是AlertDialog的实现类,是没有对外公开的,然后在这个类中有个私有成员变量叫mTitleView,这个就是AlertDialog的title的TextView,所以只要得到这个成员变量的实例,即可自定义AlertDialog的title

得到这个的实例变量的方法通过两步反射来实现,如下:

[java] view
plain
copy

  1. AlertDialog dialog = (AlertDialog) getDialog();  
  2. try {  
  3.     Field mAlert = AlertDialog.class.getDeclaredField("mAlert");  
  4.     mAlert.setAccessible(true);  
  5.     Object alertController = mAlert.get(dialog);  
  6.   
  7.     Field mTitleView = alertController.getClass().getDeclaredField("mTitleView");  
  8.     mTitleView.setAccessible(true);  
  9.   
  10.     TextView title = (TextView) mTitleView.get(alertController);  
  11.     title.setTextColor(0xff33b5e5);   
  12.   
  13. } catch (NoSuchFieldException e) {  
  14.     e.printStackTrace();  
  15. } catch (IllegalArgumentException e) {  
  16.     e.printStackTrace();  
  17. } catch (IllegalAccessException e) {  
  18.     e.printStackTrace();  
  19. }  

[java] view
plain
copy

  1. AlertDialog dialog = (AlertDialog) getDialog();  
  2. try {  
  3.     Field mAlert = AlertDialog.class.getDeclaredField("mAlert");  
  4.     mAlert.setAccessible(true);  
  5.     Object alertController = mAlert.get(dialog);  
  6.   
  7.     Field mTitleView = alertController.getClass().getDeclaredField("mTitleView");  
  8.     mTitleView.setAccessible(true);  
  9.   
  10.     TextView title = (TextView) mTitleView.get(alertController);  
  11.     title.setTextColor(0xff33b5e5);   
  12.   
  13. } catch (NoSuchFieldException e) {  
  14.     e.printStackTrace();  
  15. } catch (IllegalArgumentException e) {  
  16.     e.printStackTrace();  
  17. } catch (IllegalAccessException e) {  
  18.     e.printStackTrace();  
  19. }  

当然还有其他办法,比如直接把title隐藏掉,然后在content View中自定义一个title出来等等

时间: 2024-12-28 01:28:27

AlertDialog更改标题颜色,字体等的相关文章

如何更改桌面图标字体颜色

如何更改桌面图标字体颜色 右键--属性--外观--高级--项目下拉箭头--图标

帝国cms 灵动标签调用标题的字体颜色方法

<?=DoTitleFont($bqr[titlefont],$bqr[title])?>这个可以显示标题颜色,但是又不能截取字数了 这个 <?=DoTitleFont($bqr[titlefont],esub($bqr[title],25))?> 既可以显示标题颜色,也可以截取字数了.

extjs-ext chart 线性图 使用自定义theme修改轴 及标题颜色!

问题描述 ext chart 线性图 使用自定义theme修改轴 及标题颜色! 我现在使用的是 "海王星"主题 线性图 使用的是背景黑色, 但是标题及轴都是黑色的,如何修改颜色?? 如何使用自定义 chart 的theme 求实例 求帮助 谢谢! 解决方案 可以配zlabel更改x/y轴显示的数字颜色..label: { color: '#f00', renderer: function (v) { this.fill = 'red'; return v; } },需要4.1+以上,不

网站从更改标题到有排名的操作过程

网站是标题是一个网站定位的体现,所以在网站标题不贴切或者网站转型的时候,更改网站标题是必须的.然而,随意更改网站标题会给搜索引擎降权.这里说一下我的网站最近从改标题到有排名的经过.我的点妆网原本是定位在免费化妆品试用信息的发布,但是由于这一类的关键词都给百度竞价铺满了首页,而且考虑到发展的需要,决定更换定位,定位到了化妆教程的部分. 网站换标题的必要性 我的网站在更改之前试用信息相关的关键词也是前2.3页的,而且快照天天更新,文章基本都隔天收录.在考虑是否更改标题确实是挣扎了一下.但是确定了路线

PowerPoint2007如何更改超链接颜色

PowerPoint2007如何更改超链接颜色         以下面一张幻灯片为例,我们可以在幻灯片中添加一个超链接来增加点击效果. 第1步 单击"插入"选项卡的"文本框"按钮,在弹出的下拉列表中单击"横排文本框"选项,如下图: PowerPoint2007 第2步 在幻灯片的空白处拖拽出一个横排文本框,在文本框中输入"点击查看"四个字. 第3步 单击"插入"选项卡下的"超链接"按钮,

Excel不显示网格线、更改网格线颜色、打印网格线

平时使用Excel表格制作报表时,额外的网格线就会显得很多余,为了使效果好看,这时需要我们手动"删除"这些网格线.方法有两种,根据你的不同需求而选择: [适用范围] 方法一:希望整个工作表的网格线都不显示(应用于当前工作表,更改多个工作表时需多次操作) 方法二:只希望选中的部分单元格不显示网格线,不适用于底色是白色以外的颜色 方法一:通过视图选项实现 [2003版]单击菜单"工具"→"选项"→"视图"选项卡→"窗口选

Excel2010更改网格线颜色教程

Excel2010更改网格线颜色教程   Excel2010 1.打开Excel2007,点击左上角的MS Office按钮,选择"Excel选项" excel2010 2.在"Excel选项"→"高级"中找到"此工作表的显示选项"下面的"网格线颜色",选择自己喜欢的颜色,确定即可. Excel2010 3.替换原色的表格.

Excel怎么更改调色板颜色?

  在Excel表格中如果需要很多颜色来填充单元格,有时候可能回觉得调色板中颜色不够用,其实调色板中的颜色是可以换的,那么怎样更换调色板中的颜色呢?下面小编就来教一下大家. Excel怎么更改调色板颜色?Excel调色板换色 页面布局 - 打开颜色下拉框 - 选取其中一套颜色. 再打开调色板时,发现颜色全换了. 怎么样?现在是不是有更多颜色啦~

BarTender更改对象颜色的方法

  在BarTender 10.1中,对于模板对象,您可以在对象的属性对话框的各个属性页上,以及文本工具栏和线条和形状工具栏上查找"颜色"控件.对于模板本身,您可以在"颜色"子选项卡上查找"颜色"控件,该子选项卡位于"页面设置"对话框的"背景"选项卡上. 注意:条形码扫描仪无法读取彩色条形码,以及使用黑色调色剂或色带打印的条形码. 因此,建议您不要修改条形码对象的颜色,除非它们仅用于装饰. 从"对