You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中,long类型资源定义后如何编写获取代码?

获取Android中long类型资源的正确写法

嗨,针对你提到的long类型资源获取问题,我给你梳理两种实用的写法,适配不同的兼容场景:

  • 如果你的App最低支持API 21(Android 5.0)及以上
    Android从API 21开始,Resources类新增了专门的getLong()方法,直接用它就能拿到你定义的long资源,代码如下:

    long myLongVal = getResources().getLong(R.long.long_test);
    

    这里要注意,你用<long>标签定义的资源,在自动生成的R文件里会被放到R.long这个静态类下,所以引用的时候要写R.long.long_test,别和int类型的R.integer搞混啦。

  • 如果需要兼容API 21以下的旧版本
    早期的Android SDK里Resources没有getLong()方法,这时候可以分两种情况处理:

    • 要是你的long数值在int的取值范围内(也就是-231到231-1之间),可以先通过getInteger()拿到int值,再强制转成long:
      long myLongVal = (long) getResources().getInteger(R.long.long_test);
      
    • 要是你的long数值超出了int的范围,建议把资源改成<string>类型定义,再手动解析成long:
      <!-- res/values/strings.xml -->
      <string name="large_long_test">1234567890123456789</string>
      
      long largeLongVal = Long.parseLong(getResources().getString(R.string.large_long_test));
      

另外提个小提示:如果是在Fragment里获取资源,记得先通过requireContext().getResources()拿到Resources实例哦~

内容的提问来源于stack exchange,提问作者user3323951

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:08:31