通过反射的方式来更改dialog中文字大小、颜色

来源:互联网 发布:法兰绒衬衫怎么洗 知乎 编辑:程序博客网 时间:2024/05/27 12:21
private AlertDialog normalDialog;
private void showNormalDialog() {    /* @setIcon 设置对话框图标     * @setTitle 设置对话框标题     * @setMessage 设置对话框消息提示     * setXXX方法返回Dialog对象,因此可以链式设置属性     */    if (normalDialog == null) {        normalDialog = new AlertDialog.Builder(SceneListActivity.this).setPositiveButton("确定",                new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        //...To-do                                            }                }).setNegativeButton("取消",                new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        //...To-do                                            }                }).create();    }    normalDialog.setCancelable(false);    normalDialog.setTitle("提示");    normalDialog.setMessage("你确定要退出吗?");    // 显示    normalDialog.show();    normalDialog.getButton(android.app.AlertDialog.BUTTON_POSITIVE).setTextSize(20);    normalDialog.getButton(android.app.AlertDialog.BUTTON_NEGATIVE).setTextSize(20);    try {        //通过反射的方式来更改dialog中文字大小、颜色        Field mAlert = AlertDialog.class.getDeclaredField("mAlert");        mAlert.setAccessible(true);        Object mAlertController = mAlert.get(normalDialog);        Field mMessage = mAlertController.getClass().getDeclaredField("mMessageView");        mMessage.setAccessible(true);        TextView mMessageView = (TextView) mMessage.get(mAlertController);        mMessageView.setTextSize(23);
        mMessageView.setTextColor(Color.RED);
Field mTitle = mAlertController.getClass().getDeclaredField("mTitleView"); mTitle.setAccessible(true); TextView mTitleView = (TextView) mTitle.get(mAlertController); mTitleView.setTextSize(20);
mTitleView.setTextColor(Color.RED);
} catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); }}
阅读全文
0 0
原创粉丝点击