我制作了一个文本编辑器,有两个按钮,一个用于粗体,另一个用于斜体。我写了以下代码......
private void setBoldListener() {
btnBold.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText.getTypeface() != null) {
if (editText.getTypeface().isBold()) {
if (editText.getTypeface().isItalic()) {
editText.setTypeface(editText.getTypeface(), Typeface.ITALIC);
} else {
editText.setTypeface(editText.getTypeface(), Typeface.NORMAL);
}
} else {
if (editText.getTypeface().isItalic()) {
editText.setTypeface(editText.getTypeface(), Typeface.BOLD_ITALIC);
} else {
editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
}
}
}
}
});
}
private void setItalicListener() {
btnItalic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText.getTypeface() != null) {
if (editText.getTypeface().isItalic()) {
if (editText.getTypeface().isBold()) {
editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
} else {
editText.setTypeface(editText.getTypeface(), Typeface.NORMAL);
}
} else {
if (editText.getTypeface().isBold()) {
editText.setTypeface(editText.getTypeface(), Typeface.BOLD_ITALIC);
} else {
editText.setTypeface(editText.getTypeface(), Typeface.ITALIC);
}
}
}
}
});
}
当我的EditText具有默认字体时,代码工作正常,我的意思是默认字体。但是,如果我使用
更改字体(字体)editText.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/Comic Sans MS.ttf"));
代码无法正常运行。我尝试了很多解决方案,但每次都失败了。请告诉我我错过了什么?