Html.fromHtml(String) + 换行问题

Posted

技术标签:

【中文标题】Html.fromHtml(String) + 换行问题【英文标题】:Html.fromHtml(String) + Linebreak Problem 【发布时间】:2011-03-21 06:12:23 【问题描述】:

我想在警报消息中显示带有换行符的文本:

private void showAbout() 
        AlertDialog.Builder builder = new AlertDialog.Builder(context);

        String message = "<b>Rechtlicher Hinweis:</b>\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a dolor sapien. Etiam arcu erat, lobortis sed vestibulum ut, adipiscing et enim. Nulla vestibulum volutpat dolor, non pellentesque purus imperdiet vitae. Aenean et elit vel erat consectetur pulvinar. Sed semper, ante vel elementum aliquet, dui urna scelerisque tortor, eu auctor lorem nunc adipiscing velit. Praesent eget libero diam, eget imperdiet sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.\n" + getVersionInfo();

        builder.setMessage(html.fromHtml(message));
        builder.setCancelable(false);
        builder.setPositiveButton("Close", new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int id) 
                dialog.cancel();
            
        );
        builder.setTitle("About"); 
        builder.setIcon(R.drawable.icon); 

        AlertDialog alert = builder.create(); 

        alert.show(); 
    

但是这或多或少都很好,换行符

\n

根本不显示。我已经尝试用\\n 甚至&lt;\br&gt; 替换\n,但没有任何效果。任何提示如何做到这一点?

【问题讨论】:

【参考方案1】:

@Aaron Digulla 它对我不起作用, 但我发现这个: https://developer.android.com/reference/android/text/Html.html#FROM_HTML_MODE_LEGACY

将“\n”替换为“\n\n”

它对我有用。

【讨论】:

【参考方案2】:

改变

builder.setMessage(Html.fromHtml(message));

builder.setMessage(Html.fromHtml(message.replace("\n","<br />"));

【讨论】:

【参考方案3】:

Html 换行标签是&lt;br/&gt;

【讨论】:

【参考方案4】:

试试&lt;br /&gt;(注意斜线在标签名称​​之后加上它是正斜线,而不是反斜线)。

【讨论】:

以上是关于Html.fromHtml(String) + 换行问题的主要内容,如果未能解决你的问题,请参考以下文章

TextView之富文本

带有新行的AlertDialog消息。 ( n不起作用。)

Android N 中不推荐使用 Html.fromHtml

Android N 中不推荐使用 Html.fromHtml

使用 Linkify.addLinks 与 Html.fromHtml 结合

使用字符串中的变量,做 Html.fromHtml