Android:错误:无法';t从游标窗口读取第1行第1列

Android:错误:无法';t从游标窗口读取第1行第1列,android,sqlite,Android,Sqlite,我的应用程序向我抛出异常: 错误:无法从游标窗口读取第1行第1列。在从光标访问数据之前,确保光标已正确初始化。 以下是我的功能: static public String[] getData(Context ctx) { String[] result = null; try { SQLiteDatabase db = ctx.openOrCreateDatabase("mydatabase", 0, null);

我的应用程序向我抛出异常:

错误:无法从游标窗口读取第1行第1列。在从光标访问数据之前,确保光标已正确初始化。

以下是我的功能:

static public String[] getData(Context ctx) {
    String[] result = null;
    try {
        SQLiteDatabase db = ctx.openOrCreateDatabase("mydatabase", 0,
                null);
        Cursor c = db.query("answers", new String[]{"answer"}, "id_question='1'", null, null, null, null);
        if (c.getCount() == 0) {
            return null;
        }

        result = new String[c.getCount()];
        c.moveToFirst();

        for (int i = 0; i < c.getCount(); i++) {
            result[i]=c.getString(i);
            Log.v(TAG, "Answer "+c.getString(i));//responds just on 1st time
            c.moveToNext();
        }
        c.close();
        db.close();

        return result;
    } catch (Exception e) {
        Log.e(TAG,
                "Database.getData(Context) - Error: "
                        + e.getMessage());
        return result;
    }
}
当我把光标放在搜索栏上时

  • “应答”结果是[ttttt,null,null]——其中ttttt是第一个应答
  • “id_问题”结果为[1,null,null]
  • 空结果是[1,1,wwww]-其中1是id_问题,wwww是最后一个答案
我做错了什么


我将感谢任何帮助。谢谢

Cusror.getCount
返回游标中的行数。使用
Cursor.getColumnCount()
从行中获取列:

 result = new String[c.getColumnCount()];
 for (int i = 0; i < c.getCount(); i++) {
      for(int j=0;j<c.getColumnCount();j++){  
        result[j]=c.getString(j); << here pass column index 
      }
   ....
  }
result=新字符串[c.getColumnCount()];
对于(int i=0;i对于(int j=0;j
Cusror.getCount
返回游标中的行数。使用
Cursor.getColumnCount()
从行中获取列:

 result = new String[c.getColumnCount()];
 for (int i = 0; i < c.getCount(); i++) {
      for(int j=0;j<c.getColumnCount();j++){  
        result[j]=c.getString(j); << here pass column index 
      }
   ....
  }
result=新字符串[c.getColumnCount()];
对于(int i=0;i对于(int j=0;j
Cusror.getCount
返回游标中的行数。使用
Cursor.getColumnCount()
从行中获取列:

 result = new String[c.getColumnCount()];
 for (int i = 0; i < c.getCount(); i++) {
      for(int j=0;j<c.getColumnCount();j++){  
        result[j]=c.getString(j); << here pass column index 
      }
   ....
  }
result=新字符串[c.getColumnCount()];
对于(int i=0;i对于(int j=0;j
Cusror.getCount
返回游标中的行数。使用
Cursor.getColumnCount()
从行中获取列:

 result = new String[c.getColumnCount()];
 for (int i = 0; i < c.getCount(); i++) {
      for(int j=0;j<c.getColumnCount();j++){  
        result[j]=c.getString(j); << here pass column index 
      }
   ....
  }
result=新字符串[c.getColumnCount()];
对于(int i=0;i
result = new String[c.getColumnCount()];
for (int i = 0; i < c.getCount(); i++) {
for(int ii=0;ii<c.getColumnCount();ii++){ 
result[ii]=c.getString(1); 
....
}
result=新字符串[c.getColumnCount()];
对于(int i=0;i
result = new String[c.getColumnCount()];
for (int i = 0; i < c.getCount(); i++) {
for(int ii=0;ii<c.getColumnCount();ii++){ 
result[ii]=c.getString(1); 
....
}
result=新字符串[c.getColumnCount()];
对于(int i=0;i
result = new String[c.getColumnCount()];
for (int i = 0; i < c.getCount(); i++) {
for(int ii=0;ii<c.getColumnCount();ii++){ 
result[ii]=c.getString(1); 
....
}
result=新字符串[c.getColumnCount()];
对于(int i=0;i
result = new String[c.getColumnCount()];
for (int i = 0; i < c.getCount(); i++) {
for(int ii=0;ii<c.getColumnCount();ii++){ 
result[ii]=c.getString(1); 
....
}
result=新字符串[c.getColumnCount()];
对于(int i=0;i对于(int ii=0;ii)您是在对角线上移动,而不是在垂直方向:您正在增加列索引…超出其限制。这里:
result[i]=c.getString(i);
您想要类似于
result[i]=c.getString(0)的内容;//0是答案列
您是在对角线方向移动,而不是在垂直方向移动:您正在增加列索引…超出其限制。这里:
result[i]=c.getString(i);
您需要类似于
result[i]=c.getString(0)的内容;//0是答案列
您是在对角线方向移动,而不是在垂直方向移动:您正在增加列索引…超出其限制。这里:
result[i]=c.getString(i);
您需要类似于
result[i]=c.getString(0)的内容;//0是答案列
你是在对角线方向移动,而不是在垂直方向移动:你在增加列索引…超出了它的限制。这里:
result[i]=c.getString(i);
你想要类似于
result[i]=c.getString(0);//0是答案列
哦,天哪,我昨天显然很累。谢谢!)哦,天哪。我昨天看起来真的很累。谢谢!=)哦,天哪。我昨天看起来真的很累。谢谢!=)哦,天哪。我昨天看起来真的很累。谢谢!=)