Android 3.0 Не удалось прочитать строку №, столбец № из окна курсора

У меня есть приложение, которое отлично работает на android 2.1, но при попытке перехода на 3.0 я получаю ошибку курсора, с которой я не знаком.

Java.lang.IllegalStateException: Не удалось прочитать строку 0, столбец -1 из окно курсора. Убедитесь, что курсор инициализирован правильно перед доступ к данным из него.

Все данные хранятся в базе данных SQLite, и этот код отлично работает в Android 2.1. Нужно ли инициализировать курсор по-другому в android 3.0?

Ниже приведен мой код.

private void OpenGroupData(){
SQLiteDatabase db = openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
Cursor cur = db.rawQuery("SELECT groupid FROM properties GROUP BY GroupID" + ";" , null);
LinearLayout glayout = (LinearLayout) findViewById(R.id.Grouplayout);
LinearLayout gwindow = (LinearLayout) findViewById(R.id.groupwindow);

TextView data = new TextView(this);
glayout.addView(data);
data.setText("");
int ID = cur.getColumnIndex("groupid");
int idvalue;

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);

try{
    // Check if our result was valid.
    cur.moveToFirst();
    if (cur != null) {

        // Loop through all Results
        do {data = new TextView(this);
            data.setTextSize(20);
        data.setClickable(true);
        data.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
              GroupClick(v);
            }
          });
        glayout.addView(data);
        idvalue = cur.getInt(ID);
        data.setId(idvalue);
        data.setText("Group: " + idvalue);
        }while(cur.moveToNext());
        } 
        cur.close();
        db.close();
        }   catch(Exception e) {
            Toast.makeText(getApplicationContext(), "Open Group Exception: " + e.toString(), Toast.LENGTH_SHORT).show();
        }
 }
6
задан Neysor 22 March 2012 в 12:21
поделиться