如何在Android中处理<br />标签

3

我已经在线上搜索了一段时间,但一直没有找到正确的答案。简而言之,我正在从 online 检索一个网页来用作我的收件箱。我非常需要在每个“消息”之间跳过行,因此我在我的 PHP 中放置了
标签。在 Web 浏览器中它完美运行,但是,在我的 Android 应用程序中,我实际上可以看到
标签以纯文本形式显示。只想将它们视为“下一行/新行”。有什么建议吗?

我的方法代码:

public String getInbox(String where){

        BufferedReader in = null;
        String data = null;
        try{


            HttpClient client = new DefaultHttpClient();
            URI website = new URI("http://example.com/getInbox.php?where="+where);

            HttpPost post_request = new HttpPost();
            post_request.setURI(website);


            HttpGet request = new HttpGet();

            request.setURI(website);
            //executing actual request

                        //add your implementation here
            HttpResponse response = client.execute(request);

            in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            StringBuffer sb = new StringBuffer("");
            String l = "";
            String nl = System.getProperty("line.separator");
            while ((l = in.readLine()) != null) {
                sb.append(l+nl);

            }
            in.close();
            data = sb.toString();


return data;
        }catch (Exception e){
            return "ERROR";

        }

        }

网页上的输出:
eg test
eg test
eg lol
eg lol
eg testing

安卓系统中的输出:
eg test<br />eg test<br />eg lol<br />eg lol<br />eg testing<br />eg
4个回答

11
String lineSep = System.getProperty("line.separator");
String yourString= "test<br />eg test<br />eg lol<br />eg lol<br />eg testing<br />eg34 ernestggggg";


yourString= yourString.replaceAll("<br />", lineSep):

这个确实有效。非常感谢。如此简单的解决方案。replacereplaceAll真的有很大的区别。再次感谢。 - EGHDK

2

让您的文本像在网页浏览器中一样显示。为此,您需要使用以下方法:

TextView tv = (TextView)findViewById(R.id.tv);
tv.setText(Html.fromHtml(  " Overs Alloted "  + "<small> <small> " + "at start of innings" + "</small> </small>" ));  //Example

String s= getStringFromSoruce(parameters);  //Pass the string you need here
tv.setText(Html.fromHtml(s));

您可以使用任何视图设置文本。您甚至可以使用此功能删除更多的HTML标签。
我希望这能解决您的问题 :)

0
你可以使用 Html.fromHtml() 将 HTML 转换为包含 任何 HTML 的 Spanned 字符串。

0

看看这个。用新行"\n"替换<br />标签。

data = sb.toString();

data = data.replaceAll("<br />", "\n");

return data;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接