0
  • 最佳答案

    一样的,你可以说说,提示了什么错误。

    根据错误,解决问题。

    因为你甚至可以复制java的代码过去,他会自动转kt,只是,你说的不可以,应该是有错误的。

    你没有给出错误。

    1139423796017500160  评论     打赏       断点
    • Cstri  回复 @断点
      我最开始是写在ViewModel里面的,行不通,后来写到Fragment里面就可以了,应该是String.format这个东西捣的鬼,它需要 import android.content.Context,而ViewModel里面引入了但是不引用,我把其他导入的库都删除了,只剩下这个库也没有引用
      Cstri 2022-12-15 09:15   回复 1342082010843308032
    • Cstri  回复 @Cstri
      没有给出错误确实是我的疏忽,抱歉抱歉
      Cstri 2022-12-15 09:16   回复 1342082010843308032
    • Cstri  回复 @Cstri
      但我还是想在ViewModel里面实现,就是不知道有没有方法
      Cstri 2022-12-15 09:17   回复 1342082010843308032
    • Cstri  回复 @Cstri
      错误就是getString(参数不支持 int类型),导致获取不到资源文件里面的字符串
      Cstri 2022-12-15 09:39   回复 1342082010843308032
    • Cstri  回复 @断点
      弄好了,弄好了,使用 String.format(context.resources. getString(R.string.Speed) 这样就成功了
      Cstri 2022-12-15 10:12   回复 1342082010843308032
    • 断点  回复 @Cstri
      你还是没理解getString是那个对象的方法,你在fragment中是因为fragment中的context,你在act也可以,那是因为隐藏上下文是谁,你在vm中调用,是因为前面对象是vm,vm没有getString方法的。 在调用方法前,想清楚这个方法是属于谁提供的,这个很重要,可以解决方法归属的问题。一个方法不可能凭空出现的。
      断点 2022-12-15 11:16   回复 1139423796017500160
    • Cstri  回复 @断点
      这个解释我给满分,懂了,多谢多谢
      Cstri 2022-12-16 08:49   回复 1342082010843308032
  • 想要在 ViewModel 中获取的话,你可以继承自 AndroidViewModel ,然后在这个 ViewModel 中通过 getApplication().getString(R.string.xxx) 就可以拿到了。


    如果对你有用的话,请记得打赏 :)

    1204736502274318336  评论     打赏       A lonely cat
相关问题
幻影~ · 安卓
2024-04-26 19:25 2 4
deanhu · AOSP
2024-04-25 21:53 3 10
幻影~ · 提问
2024-04-13 20:13 10 2
幻影~ · 找工作
2024-04-07 10:44 16 2
幻影~ · 问题
2024-03-31 17:20 7 2
TONYGFX · AOSP
2024-03-28 17:11 4 2