相关疑难解决方法(0)

游标索引超出范围"索引0请求:大小为0"

当我在数据库中搜索某些内容时,我正在使游标索引超出范围"索引0请求:大小为0"错误.我在我的数据库中搜索的项目目前不存在,我知道这一点,但我如何处理项目不存在的查询.

我发了一个电话号码

public String searchNumber(Context context,String number){

    ContactDB db = new ContactDB(context);
    db.open();
    Cursor curs = db.getIdFromPhone(number);
    String test = curs.getString(curs.getColumnIndex(db.PHONE_NUMBER)); //fails here
    curs.close();
    db.close();
    return test;
}
Run Code Online (Sandbox Code Playgroud)

询问

public Cursor getIdFromPhone(String where){
    Cursor cur = db.query(DATABASE_TABLE, new String [] {ID,PHONE_NUMBER}
    , PHONE_NUMBER + "='" + where + "'",null,null,null,null);
    if(cur != null)
        cur.moveToFirst();

    return cur;
}
Run Code Online (Sandbox Code Playgroud)

测试搜索

from = messages.getDisplayOriginatingAddress();
String dbNumber = searchNumber(arg0,from);
            if(dbNumber.equals(from)){
      //do stuff
}else{
   //do other stuff
}
Run Code Online (Sandbox Code Playgroud)

如果找不到数字,它应该执行else语句,但它没有那么远

android

6
推荐指数
2
解决办法
2万
查看次数

错误 - android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0

我正在试图做一个数据库,但我有一个问题......

这是日志:

E/AndroidRuntime(894): FATAL EXCEPTION: main
E/AndroidRuntime(894): java.lang.IllegalStateException: Could not execute method of the activity
E/AndroidRuntime(894):  at android.view.View$1.onClick(View.java:3044)
E/AndroidRuntime(894):  at android.view.View.performClick(View.java:3511)
E/AndroidRuntime(894):  at android.view.View$PerformClick.run(View.java:14105)
E/AndroidRuntime(894):  at android.os.Handler.handleCallback(Handler.java:605)
E/AndroidRuntime(894):  at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(894):  at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(894):  at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(894):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(894):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(894):  at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(894): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(894):  at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(894):  at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(894):  at android.view.View$1.onClick(View.java:3039)
E/AndroidRuntime(894):  ... 11 more
E/AndroidRuntime(894): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a …
Run Code Online (Sandbox Code Playgroud)

database android

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

database ×1