我尝试使用此功能更改AlertDialog字体
private void saveDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(res.getString(R.string.dialog_title))
.setMessage(res.getString(R.string.dialog_saveconfirm))
.setCancelable(false)
.setNegativeButton(res.getString(R.string.dialog_cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.setPositiveButton(res.getString(R.string.dialog_ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//do some thing
});
AlertDialog alert = builder.create();
alert.show();
TextView tit = (TextView) alert.findViewById(android.R.id.title);
TextView msg = (TextView) alert.findViewById(android.R.id.message);
Button btn2 = alert.getButton(DialogInterface.BUTTON_NEGATIVE);
Button btn1 = alert.getButton(DialogInterface.BUTTON_POSITIVE);
tit.setTypeface(UtiliShare.getTf());
msg.setTypeface(UtiliShare.getTf());
btn1.setTypeface(UtiliShare.getTf());
btn2.setTypeface(UtiliShare.getTf());
}
当我在Activity中调用函数时,我设置了02-25 17:59:04.759: E/AndroidRuntime(1014): java.lang.NullPointerException
tit
时设置了字体,但当我删除tit
对话框时效果良好。
我认为TextView tit = (TextView) alert.findViewById(android.R.id.title);
中的错误是返回null。
我该如何解决这个问题?
更新 此链接包含我的问题Answer
的答案感谢Sam
答案 0 :(得分:1)
为了按照您想要的方式更改文本视图,我建议使用自定义布局进行对话。看看
http://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout
答案 1 :(得分:0)
如果您使用的是android.support.v7.app.AlertDialog
,则必须使用android.support.v7.appcompat.R.id.alertTitle
,否则请使用android.R.id.title