【问题标题】:How I resolve the String/int Error?如何解决字符串/整数错误?
【发布时间】:2017-06-22 15:36:15
【问题描述】:

代码

startActivity(Intent.createChooser(shareIntent,"text..text"));

工作正常,但代码

startActivity(Intent.createChooser(shareIntent,R.string.listen));

给我错误“第二个参数类型错误。找到'int',需要'java.lang.CharSequence'。”

但我的 R.string.listen 不是 int,它是一个字符串。

【问题讨论】:

  • 你检查过使用的覆盖方法是否正确吗?
  • R.string.listen 是 int 而不是 String。
  • R.string.listen 为您提供该字符串的参考索引,您将不得不使用getString(R.string.listen)
  • 只需添加 .toString()

标签: java android string char


【解决方案1】:

R.string.listenint 而不是 String。 R 下的所有元素都是整数(id、字符串、布局、原始数据……)。它们是 APK 内资源的标识符,而不是真实资源本身。

startActivity(Intent.createChooser(shareIntent, getString(R.string.listen)));

【讨论】:

    【解决方案2】:
    startActivity(Intent.createChooser(shareIntent,getString(R.string.listen)));
    

    【讨论】:

      【解决方案3】:

      R class 中的所有内容都是引用,因此它只是定义为 int。

      因此,R.string.* 是对 R.java 中的 int 的引用,它指向您的实际字符串。

      因此,在您的情况下,R.string.listen 为您提供了该字符串资源的引用索引,您需要调用 getString() 方法来获取该字符串的值。

      您可以使用getString(int)getText(int) 来检索字符串。

      getText(int) retains any rich text styling applied to the string
      

      请参阅Documentation 和类似的SO Question 了解更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-18
        • 2021-08-08
        • 2020-10-17
        • 1970-01-01
        • 2018-09-16
        相关资源
        最近更新 更多