SQLiteDatabase에서 값을 받아 Custom ListView를 만들어 보여주는 액티비티를 작성하던 중에 Viewholder가 null reference 에러가 나는 상황이 발생했다.
ViewHolder 패턴을 이용한지 얼마 되지 않아서 오타나 놓친 부분이 있을것이라 생각되어 꼼꼼히 코드를 다 살펴 봤지만 오류가나는 리스트뷰와 정상적으로 동작하는 다른 리스트뷰 코드와 차이점이 전혀 보이질 않았다.
꽤 오래 씨름을 하고 난뒤 다른 부분을 찾아 보니 데이터베이스에서 받아오는 값에 문제가 있었다.
작성중인 리스트뷰가
String Group_name
Integer word_number
를 뷰로 가지는 리스트뷰였는데, 실제로 받아오는 데이터베이스는
incorrect_word text
incorrect_word_meaning text
incorrect_word_group_name text
로 이루어져 있던 것이다. 여기서 rawQuery로 Cursor값을 받아오면서
String Group_name <-- incorrect_word text (getString)
Integer word_number <--incorrect_word_meaning text (getInt)
로 대입했던 것이다. 이 과정에서 text로 선언된 데이터를 Int로 받아오면서 런타임 에러가 생기게 되었고, IDE로도 잡을 수 없었던 것이다.
다음부터는 이런 오류가 나면 해당 모듈과 관련된 주변 모듈들이 어떤 것이 있는지 잘 살펴 봐야 될 것 같다.
'문제 해결' 카테고리의 다른 글
[Android, SQL] SQLite에서 MAX값 받아오면서 생긴 오류 (0) | 2018.09.07 |
---|---|
[Android] EditText로 ListView 구성하기 (0) | 2018.08.27 |
[Android] 다이얼로그에서 액티비티로 값 전달하기 (1) | 2018.08.20 |
소수 판별법, 왜 루트 N 이하의 수만 나눠보면 되는 것일까? (3) | 2018.03.28 |
[C++] template, typename, class 키워드 (0) | 2017.07.12 |