【问题标题】:android getText from string resource来自字符串资源的android getText
【发布时间】:2020-07-07 10:05:05
【问题描述】:

在我的应用程序中,我想在带有 html 标记的文本视图中显示一个字符串。 这将得到字符串:

String mystring = getResources().getString(R.string.Terms_And_Conditions);

except 不允许 html 字符。我可以在论坛上看到改用 getText() 但它不起作用

mystring = getResources().getText(R.string.Terms_And_Conditions);

我得到了错误

error: incompatible types: CharSequence cannot be converted to String

在所有在文本视图中使用 html 的示例中,它们只有一个简单的硬编码字符串,而且效果很好。但是从资源中提取字符串,它只是吃掉了所有的 html,就像 html 标签不是他们的一样,而且它实际上并没有做标记。每个人都说我需要改用 getText() 。那么如何使用 getText() 来获取字符串资源,或者如何在字符串资源中显示 html?还是我只需要直接在 Java 中对字符串进行硬编码?

提前谢谢你。

【问题讨论】:

  • 是的,我在那个线程上。我只是不知道如何进行函数调用。
  • Strings 不携带任何格式信息。将您的 mystring 声明为 CharSequence,并在没有 toString() 调用的情况下使用 getText()

标签: java android html textview


【解决方案1】:

如果你想使用 getText(),你必须这样做:

    String mystring = activity.getResources().getText(R.string.Terms_And_Conditions).toString()

【讨论】:

  • 这绝对回答了我的问题,谢谢。不幸的是,尽管互联网上说了什么,但似乎也去掉了所有的 html。
  • 乐于助人
【解决方案2】:

要允许html字符,可以将资源值包装在<![CDATA[ ... ]]>

比如我想显示字符串<button></button>

strings.xml:

<string name="button_button"><![CDATA[<button></button>]]></string>

MainActivity.kt:

val mystring:String = getResources().getText(R.string.button_button).toString();
Log.wtf("mystring", mystring)

日志输出:

E/mystring: <button></button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2021-07-13
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多