@ DBAdapter 부분의 일부 코드
// create
public boolean insertInfo(String subject_time, String subject_list, String amount, String color) {
ContentValues cv = new ContentValues();
cv.put(SUBJECT_TIME, subject_time);
cv.put(SUBJECT_LIST, subject_list);
cv.put(AMOUNT, amount);
cv.put(COLOR, color);
return db.insert(TABLE_NAME, null, cv) != -1;
}
// read
public ArrayList<Info> getAllInfo() {
ArrayList<Info> info = new ArrayList<Info>();
Cursor c = db.query(TABLE_NAME, new String[] {ID, SUBJECT_TIME, SUBJECT_LIST, AMOUNT, COLOR}, null, null, null, null, ID + " DESC");
if (c.moveToFirst()) {
final int indexId = c.getColumnIndex(ID);
final int indexSubject_time = c.getColumnIndex(SUBJECT_TIME);
final int indexSubject_list = c.getColumnIndex(SUBJECT_LIST);
final int indexAmount = c.getColumnIndex(AMOUNT);
final int indexColor = c.getColumnIndex(COLOR);
do {
int id = c.getInt(indexId);
String subject_time = c.getString(indexSubject_time);
String subject_list = c.getString(indexSubject_list);
String amount = c.getString(indexAmount);
String color = c.getString(indexColor);
info.add(new Info(id, subject_time, subject_list, amount, color));
} while (c.moveToNext());
}
c.close();
return info;
}
// update
public boolean updateInfo(String subject_time, String subject_list, String amount, String color) {
ContentValues cv = new ContentValues();
cv.put(SUBJECT_TIME, i.getSubject_time());
cv.put(SUBJECT_LIST, i.getSubject_list());
cv.put(AMOUNT, i.getAmount());
cv.put(COLOR, i.getColor());
String[] params = new String[] { Integer.toString(i.getId()) };
int result = db.update(TABLE_NAME, cv, ID + "=?", params);
return result > 0;
}
@내용 작성에 db가 구현된 부분
day2_3.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
day2_3.setBackgroundColor(Color.RED);//텍스트 뷰 배경 색깔 빨간색으로 변경
dialogView=(View)View.inflate(MainActivity.this, R.layout.day_subject, null);
dlgEdtSubject=(EditText)dialogView.findViewById(R.id.dlgEdt1); //editText를 나타낸다
dlgEdtSubject.setText(day2_3.getText().toString()); //day2_3이란 텍스트 뷰에 글자를 출력한다
AlertDialog.Builder dlg=new AlertDialog.Builder(MainActivity.this);
dlg.setTitle("내용 작성"); //다이얼로그의 제목
dlg.setIcon(R.drawable.ic_launcher); //다이얼로그 옆의 안드로보이 이미지
dlg.setView(dialogView); //다이얼로그를 띄운다
dlg.setPositiveButton("확인",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
mDb.insertInfo(dlgEdtSubject.getText().toString(), dlgEdtSubject.getText().toString(),
dlgEdtSubject.getText().toString(), dlgEdtSubject.getText().toString());
mDb.updateInfo(dlgEdtSubject.getText().toString(), dlgEdtSubject.getText().toString(),
dlgEdtSubject.getText().toString(), dlgEdtSubject.getText().toString());
day2_3.setText(dlgEdtSubject.getText().toString()); //day2_3이란 텍스트 뷰에 글자를 출력한다
insert 즉 내용을 처음 삽입한 후에 앱 재실행 시 텍스트 뷰의 내용이 남게하는 기능은 도움을 받아서 구현했습니다
하지만 최초에 수학이라고 저장한 뒤 이것을 과학이라고 update(수정)해도 앱 재실행 시 수학이 뜨게 되더군요
그래서 update 부분도 구현을 하고자 하는데 코드를 어떻게 고쳐야 할 지 몰라 일부 코드 올립니다
----
p.s 그리고 제가 코드 관련 질문을 올릴 때 어떻게 해야 내용을 잘 전달할 수 있는지에 대해서도 조언부탁드립니다 아직 잘 몰라서 긴 코드를 쭉 올리는 편인데 어떻게 해야 할까요