
위와 같은 식으로.. DB에 있는 회원정보를 리스트뷰로 띄우고, 알맞게 수정하는 것을 만들고 있습니다.
최종적으론 체크박스를 사용해서 체크한 회원만 수정되도록 해야하지만, 일단 update부터 하고있습니다.
update문으로 회원의 나이를 23세에서 24세로 바꾸는건 했는데, 다이얼로그에서 확인을 누르고 나서 다이얼로그가 사라지고, 다시 리스트뷰가 보일 때 동적으로 변경된 나이값이 보이지 않습니다.
나이 수정하고 다이얼로그 확인 누르면 일단 값은 바뀌는게 맞는데, 리스트뷰에 보이지 않는 다는 것이죠..
class B에서 뒤로가기 버튼을 눌러서 class A로 간다음 다시 버튼을 눌러서 classB로 들어가면 나이값이 바뀌어 보이기는 합니다..db값이 변경되었으니 listview도 다시 띄워주는 거겠죠.
dialog.setButton("확인", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
editAge = (EditText)layout.findViewById(R.id.editAge);//나이변경
String age;
age = editAge.getText().toString(); //새로 입력되는 나이값을 받는다
update_info(age); //함수로이동
adapter.notifyDataSetChanged();//변경된 데이터 확인 후, 화면 갱신
}
});
.
.
-----------------------------------------------
update_info 함수
public void update_info(String age)
{
listdb = SQLiteDatabase.openDatabase(DB_PATH, null,
SQLiteDatabase.OPEN_READWRITE | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
String sql = "update info set age='" + age
+ "' where id=" + id + ";";
listdb.execSQL(sql);
listdb.close();
listdb = null;
}
이런식으로 구현했습니다..