Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1

android中数据库处理使用cursor时,游标不是放在为0的下标,而是放在为-1的下标处开始的。

也就是说返回给cursor查询结果时,不能够马上从cursor中提取值。

 

下面的代码会返回错误

User u = null;
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from user where id = ?", new String[] { id.toString() });
Integer uid = cursor.getInt(cursor.getColumnIndex("id"));
String uname = cursor.getString(cursor.getColumnIndex("name"));
float uamount = cursor.getFloat(cursor.getColumnIndex("amount"));
u = new User(uid, uname, uamount);cursor.close();

正确的用法

User u = null;
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from user where id = ?", new String[] { id.toString() });
if (cursor.moveToFirst())
{
 Integer uid = cursor.getInt(cursor.getColumnIndex("id"));
 String uname = cursor.getString(cursor.getColumnIndex("name"));
 float uamount = cursor.getFloat(cursor.getColumnIndex("amount"));
 u = new User(uid, uname, uamount);
}
cursor.close();

 

时间: 2024-09-23 15:36:13

Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1的相关文章

android开发使用android百度地图如何发布apk

问题描述 android开发使用android百度地图如何发布apk 在android studio中将android项目生成apk并且给apk签名 解决方案 你可以百度一下再来问....http://blog.csdn.net/renfufei/article/details/50085091

Android开发:Android SDK的介绍

  1.Android SDK 即Android Software Development Kit.它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件,包含了在Android平台上开发移动应用程序的各种工具集. 2.Android SDK tools (1).Android模拟器(Android Emulator(emulator.exe)) 运行在计算机上的虚拟移动模拟器,可以使用模拟器来在一个实际的Android运行环境下 设计,调试和测试应用程序. (2).

Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!

Android Studio使用手册 "工欲善其事必先利其器" 作为一个Android开发人员来说,一款好的开发工具也是相当重要的,在相当长的时间礼,Google都是基于Eclipse以ADT插件的形式来开发Android应用的,Eclipse可谓是经典到不能再经典的开发工具了,他几乎什么都可以干,也应用很广泛,三十由于近几年来Android市场的日益扩建,Eclipse似乎有点吃力了,而且平台限制也大,于是,Google在2013年的I/O开发者大会上正式推出了这款杀手级的IDE--

Android开发工具——Android studio1.0正式版使用技巧

Android Studio介绍                     Android Studio是一个为Android平台开发程序的集成开发环境.2013年5月16日由Google产品经理Ellie Powers在Google I/O上发布,可供开发者免费使用.2013年5月发布早期预览版本,版本号为0.1.2014年6月发布0.8版本,至此进入beta阶段.第一个稳定版本于2014年12月8日发布.Android Studio基于JetBrains IntelliJ IDEA,为Andr

android开发-关于Android开发中接入TBS SDK的问题

问题描述 关于Android开发中接入TBS SDK的问题 在TBS平台申请了APPKEY之后官方并没有说meta-data中的android:name属性要填什么. 解决方案 TBS?是LBS吧! (1)在application中添加开发密钥 android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key" /> http://developer.baidu.com/map/index.php?t

android开发-在Android开发中打开网络设置出错,点击后直接退出而不是打开网络设置 怎么会事啊

问题描述 在Android开发中打开网络设置出错,点击后直接退出而不是打开网络设置 怎么会事啊 private void showSetNetworkDialog() { AlertDialog.Builder builder = new Builder(this); builder.setTitle("设置网络"); builder.setMessage("网络错误请检查网络链接"); builder.setPositiveButton("设置网络&qu

android开发-关于android文件下载的问题

问题描述 关于android文件下载的问题 小弟不才,刚学android开发 .做了个文件下载的练习,用的是JAVA的I/O流.在开发平台的模拟器上运行程序 可以正常下载.但是把程序安装到手机上以后无法下载.下载内容是下载一个外网上的的MP3文件.下载地址在程序里写死了. 解决方案 怎么会无法下载了呢?是不是手机没有联网呢? 解决方案二: 你可以挂上真机调试一下 解决方案三: 我模拟器上能运行,然后安装到真机上就不能下载了,点了相应的按钮也不报错,就是点了没反应. 解决方案四: 网络处理需要放在

【Android开发】 Android Fragment应用实战(转)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧. 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不

android开发-关于Android Debug的小问题

问题描述 关于Android Debug的小问题 我发现进入这个方法的时候,跳转到源码时,所在的位置不对,请问怎么办开发-关于Android Debug的小问题-android开发遇到问题"> 解决方案 自顶.............. 解决方案二: 紧紧帮你顶一下...加油! 解决方案三: 重新编译生成再试试. 解决方案四: clearn一下--或者你看看是不是权限问题,根本就无权限找到那个方法,关联到了错误的方法上了?