노트패드 edit수정시 궁금한점..

 mRowId = savedInstanceState != null ? savedInstanceState.getLong(NotesDbAdapter.KEY_ROWID) 
                                            : null;
        if (mRowId == null) {
            Bundle extras = getIntent().getExtras();            
            mRowId = extras != null ? extras.getLong(NotesDbAdapter.KEY_ROWID) 
                                    : null;
        }

        populateFields();


제가 노트패드 edit부분에서 가장 궁금한부분은....
위에 내용이 잘이해가 안됩니다... 대략적인 내용이  리스트에 선택된 RowId값이 있으면 edit에다가 뿌려주는것같다는 느낌은옵니다

제가 하고 싶은 것은
테이블 test
 name - abc
 pass - 1234

이런 db값이 있습니다... 오로지  레코드는 하나입니다...

노트패드를 이용해서 제가 수정을 했습니다... 저장도 잘되고 불러와지는것도 잘되었습니다....
근데 문제가.....

메인(엑티비티) -> 셋팅(엑티비티) 넘어가는 단계에서

셋팅(엑티비티) 값이 없으면 rowId값이 즉(셋팅이 아직안되어있다면 or 디비에 아직값이 없다면)
editText에 공백을 표시해서 입력을 하라고 나오게 하고 싶구요...
만약에 rowId값이 있다면 레코드(1번)을 가져와서 뿌려지게 하고 싶습니다...

----------------------------------------------------------------------------------------------
그래서 제가 했던 방법은

sDbHelper = new TestDbAdapter(Main.this);
sDbHelper.open();
// 디비를 열어 주고

mRowId = getLong(TestDbAdapter.F_ROWID);
// 이부분이 아닌것 같습니다 ㅡㅡ;; 분명 db에 값이 있는데 자꾸 Null만 가지고 옵니다.. ㅡㅡ;;;

if(mRowId != null){
    //mRowId값이 있다면
    mRowId = 1L; // 저는 레코드가 하나이기 때문에 혹시몰라서 ㅡㅡ;;; 무식한방법으로 1이라고 지정했습니다.
    Cursor set = sDbHelper.fetchTest(mRowId);
    startManager(set); //커서 에다가 mRowId값을 넣어줍니다.
    //rowId값이 있다면 editText에다가 값을 넣어줍니다...
    USER = setText(set.getString(
                    set.getColumnIndexOrThrow(TestDbAdapter.F_NAME)));
    PASS = setText(set.getString(
                    set.getColumnIndexOrThrow(TestDbAdapter.F_PASS)));
}

mRowId = getLong(TestDbAdapter.F_ROWID);
// 바로 요부분이 잘못된것 같습니다.. 요부분을 어떻게 처리해야지 rowId에 값이 있는지 없는지 알수 있나요???
// 제가 아직 부족한 관계로 잘 안되는것 같습니다... 도움 부탁드리겠습니다. ^^;;

profile