Android - ListView, CursorAdapter 그리고 _id

Android 2016.01.14 23:26 posted by TechNote.kr


SQLite의 Data를 ListView에 표시하기 위해서는 CursorAdapter를 사용해서 ListView에 연결시켜 주면 된다.


[관련글 링크]


이 SQLite에서 select해서 가져오는 data를 보면 아래와 같이 _id, title, body, done 등 4개이다.

                "_id integer primary key autoincrement, " +

                "title text, " +

                "body text, " +

                "done integer"

그런데 사실 나의 의도는 위의 4개 data를 모두 list상에 보여주는 것이 아니라 body와 done만 보여주고 싶다.


이래저래 열심히 구글링을 해보니 sqlite를 select한 결과물인 cursor를 나름대로 조작해서 새롭게 ArrayAdapter를 만드는 방법, 자신만의 Class를 만드는 방법 여러가지를 찾을수 있었다.


뭐 어쨌든 결론적으로는 기본 함수 argument에 답이 있었는데, 다음과 같다.


        m_Adapter = new SimpleCursorAdapter(this,

                R.layout.listview_memo, c,

                new String[] {"body","done"},

                new int[] {R.id.body, R.id.done},

                SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);

위과같이 CursorAdapter의 instance를 만들때 연결 data와 resource연결 부위를 위와 같이 하면 모든게 해결되었다.


해당 listview의 row 선택해보면 4개의 인자를 모두 가져올 수 있다.

즉, 보여지는 것만 저럴뿐 실제 값들은 모두 가져올수 있다.

    
저작자 표시 비영리 변경 금지
신고