【发布时间】:2018-04-05 11:26:47
【问题描述】:
首先,我有一个包含 2 个活动的应用。第一个是主要的。第二个有 3 个复选框正在更改主要活动中 textview 的字体(粗体、斜体和下划线)。我想要做的是在关闭并重新打开应用程序后,文本视图具有先前选择的字体。 有没有办法将字体存储在共享首选项中,或者可以通过其他方式完成?
谢谢
更新
这行得通(下面答案的第三种方法)
boolean loadCheck1 = preferences.getBoolean("checked1", false);
if (loadCheck1) {
tx.setTypeface(tx.getTypeface(), Typeface.BOLD);
} else {
tx.setTypeface(null, Typeface.NORMAL);
}
boolean loadCheck2 = preferences.getBoolean("checked2", false);
if (loadCheck2) {
tx.setTypeface(tx.getTypeface(), Typeface.ITALIC);
} else {
tx.setTypeface(null, Typeface.NORMAL);
}
boolean loadCheck3 = preferences.getBoolean("checked3", false);
if (loadCheck3){
tx.setPaintFlags(tx.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
} else {
tx.setPaintFlags(tx.getPaintFlags() & (~Paint.UNDERLINE_TEXT_FLAG));
}
但是字体粗体存在问题。即使 checkbox1 被选中 Bold 也不会出现。这真的很奇怪,因为每个 If 都是以相同的方式制作的。此外,如果我要更改顺序(例如 loadcheck2、loadcheck3、loadcheck1),则不会出现斜体。
【问题讨论】:
标签: android textview android-sharedpreferences