【问题标题】:Save/Retrieve the "Rich Formatted Text" in the database without losing its Format保存/检索数据库中的“富格式文本”而不​​丢失其格式
【发布时间】:2013-06-13 00:33:40
【问题描述】:

我正在使用commonsguy / cwac-richedit Library 进行富文本编辑。这样做后,我将格式化文本保存在数据库中。但是当我检索保存的格式化字符串时,它的格式被删除了。

我想知道如何在不丢失格式的情况下从数据库中保存/检索文本。

【问题讨论】:

  • 请发布您的代码 - 您尝试了什么,究竟什么不起作用?
  • 看起来您只是从应用程序中检索文本,而不是富格式。
  • @NaveenBabu 有什么办法吗?
  • @ShajeelAfzal 我不确定您使用的库。但是富文本应该是这样的 "<p>I am using <a href="https://github.com/commonsguy/cwac-richedit" rel="nofollow">commonsguy / cwac-richedit Library</a> for Rich Text Editing." 。如果您可以检索此类代码,则可以将其保存(或使用 apache commonUtil lib 中的 StringUtils.escapeHTML())并将其直接保存到 DB。
  • 是的,你是对的。 :)

标签: android commonsware-cwac


【解决方案1】:

EditText 使用 HTML 标记(有限集)。这种类型的标记文本的关键接口是SpannedSpannable

EditText 使用Editable 表示文本,实现了Spannable

Html 类用于标记和跨区文本之间的转换,您也可以使用它:

    //--suppose this is typed to an EditText called et --
    Spanned s = Html.fromHtml("<i>Hi</i> There ! <b>how're you ?</b>");
    et.setText(s);

    //--save to string--
    Editable e = et.getText();
    String s2 = Html.toHtml(e);

    //--restore from string--
    Spanned s3 = Html.fromHtml(s2);
    et.setText(s3);  

【讨论】:

  • +1,因为我们是最好的。请注意,虽然fromHtml()toHtml()TextView/EditText/RichEditText 可以支持的内容大致一致,但小部件和Spanned 可以做到这一点fromHtml() 不翻译并且@987654336 @ 不生成。有人需要创建fromHtml()toHtml() 的等价物,而不是处理所有CharacterStyle 变体。我有点希望“某人”不是我... :-)
  • @CommonsWare 啊,我明白了,CharacterStyle 有很多 Span 课程。我只知道 html 标签(您发布了这些标签的列表)。谢谢。
  • @CommonsWare 我已将每种样式应用于输入的文本(即BOLDITALICUNDERLINE 等),除了STRIKETHROUGH 之外,它们都可以正常工作。我的意思是除了STRIKETHROUGH 效果之外,所有这些都可以在数据库中正常保存和加载! STRIKETHROUGH 应用于文本但未保存在数据库中。
  • @ShajeelAfzal:这表明toHtml() 不支持strike 标签。
  • @CommonsWare 先生有什么解决方案吗?
【解决方案2】:

只需在 PostgresSQL 中使用:JSONField。奇迹般地解决了这个问题。 昨天,我也面临同样的情况。通过

解决了

PostgreSQL 中的 JSONField

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多