안녕하세요 안드로이드에 대해 공부하고 있는 학생입니다
원래는 리스트뷰 클릭시 다른 디비에 데이터가 추가되고 버튼 클릭시 모든 숫자의 합을 구하려고 했지만 너무 어려워 포기했네요 ㅠㅠㅠ
//상속자 : DB 생성
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, "food.db", null, 1);
}
//테이블 생성
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE food(_id integer primary KEY" +
" AUTOINCREMENT, name TEXT, kcal Text, gram Text);");
}
//테이블 초기화(삭제 후 생성)
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("drop table if exists food");
onCreate(db);
}
제 db 코드입니다.
//조회버튼
btnSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from food;", null);
c.moveToFirst();
String[] from = {"name", "kcal", "gram"};
final int[] to = {R.id.tvName, R.id.tvkcal, R.id.tvgram};
final SimpleCursorAdapter adapter = new SimpleCursorAdapter(listfruit.getContext(),
R.layout.display,
c,
from,
to);
listfruit.setAdapter(adapter1);
db.close();
}
});
그리고 이건 버튼 클릭시 sqlite와 연결된 레이아웃을 보여주는 코드입니다.
제가 하고 싶은 것이 에딧텍스트를 클릭했을 때
디비에 등록되어 있는 숫자의 합을 구하는 것입니다.
edt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor c = db.rawQuery("select kcal from food;", null);
int i = 0;
int tot = 0;
while (i < c.getColumnCount()){
String a = c.getString(2);
tot =+ Integer.parseInt(a);
}
edt.setText(String.valueOf(tot));
}
});
그래서 제가 이렇게 짜봤는 데
오류는 안 뜨지만 실행시키면 튕기네요
혹시 어떤 것이 잘 못되었나요?