cursor.getColumnIndexOrThrow
时间: 2024-02-07 18:04:21 浏览: 23
`cursor.getColumnIndexOrThrow` 是一个用于获取指定列名的索引的方法。它接受一个参数,即要获取索引的列名,并返回对应列名的索引值。如果指定的列名不存在于结果集中,该方法会抛出 `IllegalArgumentException` 异常。
例如,假设有一个名为 `cursor` 的 `Cursor` 对象,我们想要获取名为 "name" 的列的索引,可以使用 `getColumnIndexOrThrow` 方法:
```java
int columnIndex = cursor.getColumnIndexOrThrow("name");
```
如果 "name" 列存在于结果集中,`getColumnIndexOrThrow` 方法将返回该列的索引值;否则,将抛出异常。
相关问题
event.setmId(cursor.getInt(cursor.getColumnIndexOrThrow(BaseColumns._ID)))
这段代码是用于从数据库查询结果中获取 `_ID` 列的整型值,并将其设置为 `event` 对象的 `mId` 属性值。其中 `cursor` 是一个数据库查询结果的游标对象,`getColumnIndexOrThrow(BaseColumns._ID)` 用于获取 `_ID` 列在查询结果中的索引位置,`getInt()` 方法获取该列的整型值。最后将该值赋给 `event` 对象的 `mId` 属性。
Cursor cursor = resolver.query(uri, null, null, null); boolean mr = cursor.moveToFirst(); Long ms = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Files.FileColumns.SIZE)) 为什么上述代码查到的文件大小是0,已知大小不为0
可能是因为你使用的是 MediaStore.Files.FileColumns.SIZE 常量,该常量适用于 MediaStore.Files 表,而不是 MediaStore.Images 或 MediaStore.Video 表,因此可能无法正确获取文件的大小。
你可以尝试使用 MediaStore.Images.ImageColumns.SIZE 或 MediaStore.Video.VideoColumns.SIZE 常量,具体常量取决于你要查询的是图片还是视频文件。如果你要查询的是其他类型的文件,可以尝试使用 File.length() 方法来获取文件的大小。