NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc l

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc l相关的知识,希望对你有一定的参考价值。

异常:类型不匹配


05-06 08:12:38.151: E/androidRuntime(14904): java.lang.NumberFormatException: Invalid int: "18600000099"

05-06 08:12:38.151: E/AndroidRuntime(14904): at com.itheima.mobilesafe74.activity.BlackNumberActivity$Myadapter.getView(BlackNumberActivity.java:122)

 1 public List<BlackNumberInfo> find(int index)
 2     {
 3 //        先要拿到数据库对象
 4         SQLiteDatabase db = blackNumberOpenHelper.getWritableDatabase();
 5 //        db.rawQuery()中第一个参数就是sql语句,第二个参数是?对应的值
 6         Cursor cursor = db.rawQuery("select * from blacknumber order by _id desc limit ?,20;", new String[]{index+""});
 7 //        为了一次性拿到所有查到的字段,创建一个集合封装
 8         List<BlackNumberInfo> blackNumberList = new ArrayList<BlackNumberInfo>();
 9         while (cursor.moveToNext())
10         {
11 //            将查询的两个字段封装到一个java bean中
12             BlackNumberInfo blackNumberInfo = new BlackNumberInfo();
13             blackNumberInfo.phone = cursor.getString(0);
14             blackNumberInfo.mode = cursor.getString(1);
15 //            每次循环都将这个Javabean封装到集合中
16             blackNumberList.add(blackNumberInfo);
17         }
18         cursor.close();
19         db.close();
20         return blackNumberList;
21     }

代码第六行

select * from blacknumber
代表查询所有的字段

技术分享

数据库中的字段有_id,phone,mode三个
所以当调用代码13,14行
blackNumberInfo.phone = cursor.getString(0);
blackNumberInfo.mode = cursor.getString(1);
0对应的其实是_id而不是phone
1对应的其实是phone而不是mode
所以出现问题
修改SQL查询语句解决这个问题:
第六行改为
 Cursor cursor = db.rawQuery("select phone,mode from blacknumber order by _id desc limit ?,20;", new String[]{index+""});
即可




 


















以上是关于NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc l的主要内容,如果未能解决你的问题,请参考以下文章

在预期时处理 NumberFormatException 的正确方法是啥?

Android - NumberFormatException 问题

如何防止 java.lang.NumberFormatException:对于输入字符串:“N/A”?

java.lang.NumberFormatException 和 SystemDecimalSeparator

为啥“prepareCall”会抛出 NumberFormatException?

声纳质量门插件抛出 numberFormatException