【问题标题】:How can I capture the formatting of my EditText text, so that bold words show as bold next time I display them in a TextView如何捕获我的 EditText 文本的格式,以便下次在 TextView 中显示粗体字时显示为粗体
【发布时间】:2013-08-06 01:55:59
【问题描述】:

编辑:

我的应用程序允许用户发布 cmets 以供所有其他用户查看。我想允许用户在他们的评论中将某些词加粗或斜体等,这样当他们发表评论时,其他人也能看到粗体词等。

目前我可以将单词加粗,但是当文本保存到我的远程数据库服务器时,它会保存为普通文本,我无法找出哪些单词是粗体,哪些不是。

从 EditText 保存文本时,如何保留粗体/斜体/下划线...格式?

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:
    final SpannableStringBuilder sb = new SpannableStringBuilder("Text from the edit Text");
    
        final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold
        final StyleSpan iss = new StyleSpan(android.graphics.Typeface.ITALIC);//Span to make text italic
        sb.setSpan(bss, 0, 10, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make first 10 characters Bold 
        sb.setSpan(iss, 10, 20, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make last 10 characters Italic
        //Set text or save it in db
        etx.setText(sb);
    

    【讨论】:

    • 我已添加到我的问题中
    【解决方案2】:

    很容易。 使用EditText.getText获取文本,实现Spanned接口。

    然后您需要以某种方式在文本中标记粗体部分,为此您可能会使用良好的旧 HTML 格式,这意味着您最终会得到带有某种格式的文本(可存储在数据库中)。 使用 Html.toHtml 将 Spanned 转换为 (HTML) 字符串。将结果保存到数据库或您需要的地方。

    反向过程是获取您的 HTML 字符串并将其转换为 Spanned,然后将其设置为 EditText。使用Html.fromHtml 来完成此操作。

    【讨论】:

      【解决方案3】:

      有一种方法可以实现这一点。

      您可以在 TextView 中存储 HTML 内容和显示 HTML 内容。

      看看这个Answer

      这里是Sample link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-10
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        相关资源
        最近更新 更多