在 webview 中用粗体显示文本并换行时出现问题 android

issue in dispaly text in webview with bold and make new line android

你好,朋友们,我有一个内容为粗体、普通样式的文本值,所以我将这段文本写在我的 string.xml 文件中,如下所示

<string name="setting_messages">
  <![CDATA[
   <b>Default Selection</b><br>
   <p>My TEXT</p> <br>

    <b>Deleted Property</b>  <br>
    <p>MyText</p><br>


    <b>Upgrade Package</b> <br>
    <p>1. Line one.</p><br>
   <p>2. Line Two.</p><br>


  ]]></string>

在我的 java 文件中,我调用如下所示的网络视图

String formattedText = getString(R.string.setting_messages);
                Spanned result = Html.fromHtml(formattedText);

                String htmlText = "<html><body style=\"text-align:center\">"+result+"  </body></Html>";


                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
                alertDialogBuilder.setTitle("Help");

                WebView wv = new WebView(getActivity());
                wv.loadData(String.format(htmlText, result), "text/html", "utf-8");
                alertDialogBuilder

                    .setCancelable(true)
                    .setNegativeButton("Cancel", new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // TODO Auto-generated method stub

                        }
                    }) ;

                alertDialogBuilder.setView(wv);
                    AlertDialog alertDialog = alertDialogBuilder.create();
                    alertDialog.show();

当我 运行 上面的代码输出如下

在这张图片中,它没有加粗,并且在网络视图中有 br 标签,我知道我该如何解决它吗?

这一行:

String htmlText = "<html><body style=\"text-align:center\">"+result+"  </body></Html>";

实际上等同于:

String htmlText = "<html><body style=\"text-align:center\">"+result.toString()+"  </body></Html>";

对 Spannable 对象调用 toString() 将删除所有格式。这是您丢失粗体文本和换行符的地方。

您可以像这样格式化字符串,而无需先转换为 Spannable:

String htmlText = "<html><body style=\"text-align:center\">"+formattedText+"  </body></Html>";

然后直接传给WebView:

wv.loadData(htmlText, "text/html", "utf-8");