繁体   English   中英

Android游标越界异常索引0

[英]Android cursor out of bounds exception index 0

我正在尝试检索数据库中某人的姓名。 目前,我正在越界错误。

我知道我试图检索的数据存在,因为我有一个显示数据库中所有数据的列表视图。

如果没有检查:

 NameAppointPass.open();
    String nameReturned = NameAppointPass.getName(sentID);
    if(nameReturned != "")
    {
        Dialog d = new Dialog(this);
        d.setTitle("returned");
        TextView txt = new TextView(this);
        txt.setText("win");
        d.setContentView(txt);
        d.show();
    }
    else
    {
        Dialog d = new Dialog(this);
        d.setTitle("empty");
        TextView txt = new TextView(this);
        txt.setText("Fail");
        d.setContentView(txt);
        d.show();
    }

希望有人可以看到我要去哪里。

目前,我遇到以下错误:

01-21 21:41:43.753: E/AndroidRuntime(276): FATAL EXCEPTION: main
01-21 21:41:43.753: E/AndroidRuntime(276): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.flybase2/com.example.flybase2.addAppointment}: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

我正在使用onclick的“长变量”从列表视图发送所需数据的ID,如下所示:

public void onListItemClick(ListView list, View v, int list_posistion, long item_id)
{

    long idToPass = item_id;

    Intent setName = new Intent("com.example.flybase2.addAppointment");
    setName.putExtra("newPassedID", idToPass);
    startActivity(setName);  
}

然后通过捆绑将其发送到对象实例'NameAppointPass',如下所示:

NameAppointPass.open();
String nameReturned = NameAppointPass.getName(sentID);

以下代码显示了查询数据库的方法getName ,该方法应返回存储在选定ID处的名称,但我收到了错误消息:

public String getName(long passedID) {

        String [] columns = new String[]{KEY_ROWAPPID, KEY_NAMEAPP,   KEY_TYPEAPP, KEY_TIMEAPP, KEY_DATEAPP, KEY_COMMENTAPP};
        Cursor c = ourDatabase.query(DATABASE_TABLEAPP, columns, KEY_ROWAPPID + "=" + passedID, null, null, null, null);
        if(c != null)
        {
        c.moveToFirst();
        String name = c.getString(1);
        return name;
        }

        return null;
    }

如果游标可以为空,则可以检查游标是否没有数据:

        if(c != null && c.getCount() > 0)

为了进一步诊断为什么游标为空,请在各个位置放置日志语句以检查项目ID是否仍然正确。

设法得到排序。 最后,我为保存传递的ID错误地将变量命名错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM