Android Spannable 文本保存/存储问题

标签 android android-edittext store spannable

我得到了一个 edittext,它有多种颜色的文本,如下面的代码。有什么方法可以存储文本和颜色并再次显示它们吗?我曾经使用 SharedPreference 来存储字符串整数等,但这不适用于 Spannables。

Spannable span1 = new SpannableString("this");
Spannable span2 = new SpannableString("is");
Spannable span3 = new SpannableString("text");
span1.setSpan(new ForegroundColorSpan(Color.parseColor("#292929")), 0, span1.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span2.setSpan(new ForegroundColorSpan(Color.parseColor("#2980b9")), 0, span2.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span3.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")), 0, span3.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

edittext.setText(TextUtils.concat(span1, span2, span3));

最佳答案

您可以使用 Html.toHtml() 获取 Spannable 的 HTML 表示形式,然后使用 Html.fromHtml() 将其转换回来>。但是,您需要对此进行彻底的测试,因为并不是所有的格式都能在往返过程中幸存下来。

关于Android Spannable 文本保存/存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444635/

相关文章:

android - 在保持焦点的同时禁用 EditText 输入

android - 如何从 AlertDialog 中的 EditText 中检索值?

Extjs - 在 View 中添加带有存储数据的网格面板时获取 'TypeError: name is undefined'

java - 在 RAM 中存储数据

database - 在数据库中存储年龄的最佳方式,无 DOB

安卓通知 Intent.putExtra

android - 使用深度链接的 Firebase 电子邮件验证 (Android)

android - 如何均衡按钮之间的空间?

java - 无法删除本地文件 - 错误 "Is a Directory"

android - 使用 Android Paging Library 通过 FragmentPagerAdapter 在 ViewPager 中显示来自相同 2 个加载 fragment 的过滤结果