android - getString() 和仅 String 有什么区别?
问题描述
当我使用此代码时
private val defaultUri = Uri.parse("android.resource://com.example.viewpager2demo/drawable/add")
我可以得到正确的 uri 字符串。但是当我尝试类似这样的代码时,
private val defaultUri = Uri.parse(getString(R.string.addImage))
我得到了零点错误。string.xml 定义 R.string.addImage 如下
<string name="addImage">android.resource://com.example.viewpager2demo/drawable/add</string>
内容是一样的,但是第一个是工作,第二个是不工作。有什么不同?日志也是一样的
Log.d("TAG","getString : " + getString(R.string.addImage))
Log.d("TAG", "defaultUri : " +defaultUri.toString())
D/TAG: getString : android.resource://com.example.viewpager2demo/drawable/add
D/TAG: defaultUri : android.resource://com.example.viewpager2demo/drawable/add
解决方案
Uri 是一条路径,这就是您收到错误的原因,请尝试将该字符串资源转换为 Uri
private val defaultUri = Uri.parse(getString(R.string.addImage).toUri())
正如迈克所评论的, nullpointerException 是因为您没有在之后初始化您的引用onCreate
要解决这个问题
private lateinit var defaultUri:Uri
在 onCreate() 里面
defaultUri = Uri.parse(getString(R.string.addImage).toUri())
推荐阅读
- javascript - 在 Javascript 中,有没有办法根据对象属性将数组拆分为多个数组?
- r - 获取R中另一个表中指定值范围内小于特定值的第一个值的位置
- html - 如何更改 HTML 中下拉按钮的行为
- python - 如何优化python中的字符串替换/替换?
- python - 将图像与一组图像进行比较,以找到相似度最高的图像
- checkbox - unqork平台网格视图中的复选框实现
- python - 使用 jsonify 返回图像的 url
- java - 使用 Spring RestTemplate POST 表单数据
- java - 模拟系统中的量化
- angular - 如何在 Angular 中使用属性/事件绑定动态生成 DOM 元素?