마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

db에 EditeText의 값을 어떻게 넣을 수 있을까요?

0 추천

하나의 activity내에 구현된걸 이해를 쉽게 하기위해 클래스 분할을 시도 하고 있습니다.

DBDefine class 작성 //DB 구조 있는곳

DBHelper class 작성 //SqliteOpenHelper 구조 있는곳

inputDB // editText의 값을 불러와서 DB에 데이터 넣을곳

inputDB레이아웃이 실행되면 inputDB activity onCreate에서

레이아웃들의 id값을 호출하고

inputDB activity 내의 DB입력 메소드를 호출합니다, 아래는 DB입력 메소드의 일부 입니다.

public void o_DBInsert(){
        o_DBHelper mDB = new o_DBHelper(getApplicationContext());
        //db open 읽고 쓰기 가능한 모드
        SQLiteDatabase db = mDB.getWritableDatabase();
        o_DBDefine.oils.date = sDate;// 이런식은 안되네요 ^^;;;
        //db에 data 입력
        db.execSQL(
                "INSERT INTO inputOil VALUES(" +
                        AP + o_DBDefine.oils.COLUMN_ID + AP + o_DBDefine.oils.DBComma +
                        AP + o_DBDefine.oils.date + AP + o_DBDefine.oils.DBComma +
                        ");"
        );
        
        db.close();
}

그런데 여기서 EditText의 값을 어떻게 넣을수 있을지 고민이 생겼습니다.

하나의 activity 내에서는 sql구문에 String으로 EditText의 값을 할당하여 넣었습니다만...

sDate는 레이아웃의 EditText의 값을 받아온 변수 입니다.

o_DBDefine.oils.date = sDate;

혹시나 이런식으로 해보려 했지만... 역시나 안되네요...^^;;;;

toast출력도 잘되니 sDate변수는 문제 없는듯 합니다만...

 

이걸

o_DBDefine.oils.date

여기에 넣을 방법을 찾고자 합니다..

 

감사합니다.

 

cycix (200 포인트) 님이 2017년 5월 19일 질문

1개의 답변

0 추천
 
채택된 답변
o_DBDefine , oils 같은게 어떤 형식인지 알 방법이 없어서 답변 불가능합니다.
o_DBDefine.oils 가 null이 아닌지 확인해 보시고 값이 있다면
final이나 private로 선언되어 있는지 확인 해 보세요.
익명사용자 님이 2017년 5월 19일 답변
cycix님이 2017년 5월 23일 채택됨
답변 감사 드립니다.
최대한 자세히 적는다고 했는데.. 전체 소스가 너무 길어서
첨부 소스가 부족했나 봅니다.

sql쿼리로 무작정 집어넣었는데
분할하니 편하네요... ^^

아래는 자답입니다.

o_DBHelper mDB = new o_DBHelper(getApplicationContext());
SQLiteDatabase db = mDB.getWritableDatabase();
ContentValues values = new ContentValues();

values.put(o_DBDefine.oils.date, sDate);
db.insert(o_DBDefine.oils.DBTablename, null, values);
...