public class DBHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "chatRoom.db";
private static final String CHAT = "chat";
private static final String CHAT_LIST = "chat_list";
private static final String CHAT_ROOM = "chat_room";
private static final String CHAT_NAME = "chat_name";
private static final String CHAT_TEXT = "chat_text";
private static final String ROOM = "room";
public ArrayList<String> arrayList;
private String room_name;
public DBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String CREATE_CHAT_TABLE =
"CREATE TABLE " +
CHAT + "(" +
CHAT_LIST + " INTEGER PRIMARY KEY, " +
CHAT_ROOM + " TEXT," +
CHAT_NAME + " TEXT," +
CHAT_TEXT + " TEXT" + ")";
db.execSQL(CREATE_CHAT_TABLE);
String CHAT_ROOM_TABLE =
"CREATE TABLE " +
ROOM + "(" +
CHAT_LIST + " INTEGER PRIMARY KEY, " +
CHAT_ROOM + " TEXT" + ")";
db.execSQL(CHAT_ROOM_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS" + CHAT);
onCreate(db);
}
public ArrayList<String> findChatData(String room_name)
{
String query = "SELECT * FROM " + CHAT + " WHERE " + CHAT_ROOM + " = '"+ room_name +"'";
//String query = "SELECT * FROM " + CHAT;
Log.i("findChatData", room_name);
ArrayList<String> arrayList = new ArrayList<>();
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(query, null);
if(cursor.moveToFirst())
{
cursor.moveToFirst();
int count = cursor.getCount();
Log.i("count", String.valueOf(count));
for(int i = 0; i < count; i++)
{
Log.i("cursor", "Start");
String text = cursor.getString(cursor.getColumnIndex("text")); // <- 에러발생 지점.
arrayList.add(text);
//Log.i("text", text);
cursor.moveToNext();
// chat_room = new Chat_room(name, text);
}
cursor.close();
}
else
{
Log.i("chat", "Error");
}
sqLiteDatabase.close();
return arrayList;
}
public void addRoomData(Chat_room chat_room)
{
ContentValues contentValues = new ContentValues();
contentValues.put(CHAT_ROOM, chat_room.getRoomName());
Log.i("getRoomName", chat_room.getRoomName());
SQLiteDatabase sqLiteDatabase =this.getWritableDatabase();
sqLiteDatabase.insert(ROOM, null, contentValues);
sqLiteDatabase.close();
}
public void addChatData(Chat_room chat_room)
{
ContentValues contentValues = new ContentValues();
contentValues.put(CHAT_ROOM, chat_room.getRoomName());
contentValues.put(CHAT_NAME, chat_room.getName());
contentValues.put(CHAT_TEXT, chat_room.getMsg());
Log.i("getRoomName", chat_room.getRoomName());
Log.i("getName", chat_room.getName());
Log.i("getMsg", chat_room.getMsg());
SQLiteDatabase sqLiteDatabase =this.getWritableDatabase();
sqLiteDatabase.insert(CHAT, null, contentValues);
sqLiteDatabase.close();
}
E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 1 rows, 4 columns.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jt.android/com.example.jt.android.ChatRoomActivity}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
이러한 에러가 발생했는데 왜그런건지;; 답변 부탁드립니다