调用的游标索引超出范围

时间:2014-02-05 16:50:24

标签: android null cursor

我正在尝试解析所有调用日志,但是只有第一次调用结束时,光标才会超出范围。它抛出2个例外(日期和持续时间)

提前谢谢

我的代码在这里:

if (c != null && c.getCount()>0) {
        if (c.moveToFirst()) {!
            type = Integer.parseInt(c.getString(c.getColumnIndex(CallLog.Calls.TYPE)));
            do {
                try{
                    Log.d(this.getClass().getName(),"Date is "+c.getString(c.getColumnIndex(Calls.DATE)));
                }catch(Exception e){
                    Log.d(this.getClass().getName(),"Exception: DATE IS NULL!!");
                }
            //String timestamp = c.getString(c.getColumnIndex(Calls.DATE));
                //Log.d(this.getClass().getName(),"timestamp is: "+timestamp);
                try{
                    long duration= c.getLong(c.getColumnIndex(CallLog.Calls.DURATION));
                }catch(Exception e){
                    Log.d(this.getClass().getName(),"Exception:  DURATION IS NULL!!");
                }
                //callDuration.put(timestamp, duration);
            }
            while (!c.moveToNext());
        }
    }

1 个答案:

答案 0 :(得分:0)

由于这是一个do-while循环,我认为条件需要为循环才能继续。

所以你的代码应该说

做{        这个     }      while(c.moveToNext());

当条件变为false时,循环将退出。

解释在这里 - http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html