【问题标题】:SetText to a TextView将文本设置为 TextView
【发布时间】:2011-08-23 12:11:17
【问题描述】:

我想通过代码为 textView 设置文本。我的文字是这样的:“aaaa \n bbb\n ccc”,如果我在屏幕上使用 setText() 方法,我得到的格式是准确的,而不是这样的:

"aaaa
bbb
ccc".

如果我输入 xml android:text="aaaa \n bbb\n ccc" 它工作正常。我需要通过代码设置它,而不是从 xml 文件。我该怎么做?

【问题讨论】:

    标签: android textview settext


    【解决方案1】:

    只需使用换行符“\n”,如下所示:

    myTextView.setText("aaaa\nbbb\nccc");
    

    这将输出:

    啊啊
    bbb
    抄送

    【讨论】:

    • 奇怪的问题是我有来自链接的字符串,我无法访问他。我的意思是我有 String data=(String) sh.userList.get("title");如果我将 setText(data) 放在屏幕上,我会得到所有文本,包括“\n”。为什么?
    • 调试你的代码。我建议在执行 setText(data) 的行上添加一个断点。如果您随后在调试模式下运行您的应用程序(如果您使用的是 Eclipse,请按 F11),它将在该行暂停。然后,您可以将鼠标悬停在数据上以查看其中的确切内容。顺便问一下,userList 到底是什么?
    • 嗯,这有点复杂。我使用 SAX 从 xml 获取信息。真正奇怪的是,如果我写: String data="aaaa\nbbb\nccc" 和 setText(data) 一切正常。但是现在,我有 String data=(String) sh.userList.get("title") ,这和以前一样,但是如果我把 setText(data) 放了就不行了。
    • 我用这个例子来获取我需要的字符串。
    • 你没有提到你正在使用 SAX ;)。您是自己创建 xml 文件吗?因为如果是这样,您就没有以正确的方式添加换行符。看看这个 StackOverflow 问题:stackoverflow.com/questions/5613535/…。
    【解决方案2】:

    使用 HTML 标签:

    myTv.setText(Html.fromHtml("<p>aaaa<br/>bbbb<br/>cccc</p>"));
    

    【讨论】:

    • 如果您在使用其他方法时遇到问题,这实际上是一个不错的选择。
    【解决方案3】:

    试试这样:

    setText("aaaa\nbbb\nccc");
    

    【讨论】:

    • 这行不通。这将在屏幕上输出“aaaa \nbbb \nccc”,因为您通过在“\n”之前添加反斜杠来转义它。
    • 对不起。我理解的是相反的。
    猜你喜欢
    • 2013-10-27
    • 1970-01-01
    • 2014-12-09
    • 2016-02-23
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多