주소관리 앱개발 ver.1 (2일차)
- /src/MainDBHelper.java 생성
- SQLiteOpenHelper에서 상속
12public class MainDBHelper extends SQLiteOpenHelper {} - 빨간 전구에 마우스를 올려 놓으면 그림과 같이 나타나고 Implement Methods 선택
- 생성된 코드
1234567891011public class MainDBHelper extends SQLiteOpenHelper {@Overridepublic void onCreate(SQLiteDatabase db) {}@Overridepublic void onUpgrade(SQLiteDatabase db, int i, int i1) {}}- onCreate와 onUpgrade의 매개변수가 SqLiteDatabase sqLiteDatabase이면 SqLiteDatabase db로 수정
- 소스가 추가되고 또 빨간 전구에 마우스를 올려놓고 Create Constructor matching Super 선택
- 생성된 코드
123456789101112131415public class MainDBHelper extends SQLiteOpenHelper {public MainDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase db) {}@Overridepublic void onUpgrade(SQLiteDatabase db, int i, int i1) {}} - 코드를 다음과 같이 수정
1234567891011121314151617181920212223242526272829303132333435363738public class MainDBHelper extends SQLiteOpenHelper {private Context context;private static final String DB_NAME = "mydb";private static final int DB_VERSION = 1;public MainDBHelper(Context context) {super(context, DB_NAME, null, DB_VERSION);this.context = context;}public MainDBHelper(Context context, String name, int version) {super(context, name, null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "";// 테이블 생성try {sql = "CREATE TABLE `addr` (" +"`_id`INTEGER PRIMARY KEY AUTOINCREMENT," +"`name`TEXT," +"`tel`TEXT," +"`hp`TEXT," +"`post`TEXT," +"`addr1`TEXT," +"`addr2`TEXT" +");";db.execSQL(sql);} catch (Exception ex) {}}@Overridepublic void onUpgrade(SQLiteDatabase db, int i, int i1) {}}
- 생성된 코드
- SQLiteOpenHelper에서 상속
- /src/FragRegister.java 수정
1234567891011121314151617181920212223242526public class FragRegister extends Fragment implements View.OnClickListener{@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.frag_register,container,false);((Button)view.findViewById(R.id.btnSave)).setOnClickListener(this);return view;}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btnSave :Toast.makeText(getContext(), "클릭", Toast.LENGTH_SHORT).show();MainDBHelper dbHelper = new MainDBHelper(getContext());SQLiteDatabase db = dbHelper.getWritableDatabase();break;}}} - Virtual Devices를 API 22버전으로 생성해서 사용
- 22버전은 data폴더를 확인할 수 있음
- 27버전은 확인 못함
- Android Device Monitor 사용
- Tools -> Android -> Enable ADB Integration 체크
- Tools -> Android -> Android Device Monitor 실행
- File Explorer에서 /data/data/패키지이름을 찾아 database폴더가 있음을 확인