3

编辑:

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

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

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

4

3 回答 3

6

有一种方法可以实现这一目标。

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

只要看看这个答案

这是示例链接

于 2013-08-12T06:57:18.083 回答
1

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

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

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

于 2013-08-12T06:54:30.587 回答
0
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);
于 2013-08-05T11:19:54.283 回答