Tôi có một ứng dụng chạy tốt trên Android 2.1, nhưng khi cố gắng chuyển đổi sang 3.0, tôi gặp lỗi con trỏ mà tôi không quen với.Android 3.0 Không thể đọc hàng #, cột # từ cửa sổ con trỏ
Java.lang.IllegalStateException: Không thể đọc row0, cột -1 từ cửa sổ con trỏ. Đảm bảo con trỏ được khởi chạy chính xác trước khi truy cập dữ liệu từ con trỏ.
Tất cả dữ liệu được storred trong cơ sở dữ liệu SQLite và mã này hoạt động tốt trong Android 2.1. Con trỏ có phải được khởi tạo khác trong Android 3.0 không?
Được liệt kê bên dưới là mã của tôi.
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();
}
}
Tôi đã gặp sự cố tương tự và điều này đã khắc phục sự cố - cảm ơn bạn! +1 – Matt