안녕하세요 책보고 공부하는 학생입니다.
db연동해서 값 입력후 add버튼 클릭시 db에 데이터를 추가하고 list 버튼 클릭시 입력된 데이터들을
리스트뷰에 입력해주는 어플을 연습하고있는데요
db에 추가해서 확인까지는 가능한데 list버튼을 누르면 그대로 앱이 종료됩니다..ㅠㅠ 왜이러는걸까요?
이건 데이터베이스 테이블 만든 자바코드입니다.
package com.example.sqlitemission;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION=1;
public DBHelper(Context context){
super(context,"testDB",null,DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE testTBL (" +
"tId INTEGER PRIMARY KEY AUTOINCREMENT," +
"title TEXT," +
"content TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
}
}
이거는 리스트뷰에 연동해서 넘기는??코드입니다.
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.CursorAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import androidx.appcompat.app.AppCompatActivity;
public class Main2Activity extends AppCompatActivity {
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listView =findViewById(R.id.listview);
DBHelper helper = new DBHelper(this);
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT tId, title, content FROM testTBL",null);
CursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
cursor,
new String[] {"tId", "title"},
new int[] {android.R.id.text1, android.R.id.text2},
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
listView.setAdapter(adapter);
}
}
초보라서 뭐가 문제점인지 아무리봐도 못찾겠네요.. 도와주세요