안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드를 공부중인 학생입니다. DB 관련 공부를 하다가 잘 안풀리는 것이 있어서 질문을 올립니다.
하나의 DB에 텍스트와 날짜(timestamp)로 저장이 되어있고 저장된 날짜를 액티비티에서 활용을 할려고 합니다.
timestamp형태를 String 형태로 바로 받을 수 있는 것 같더군요. 예를들면
String test = cursor.getString(1); 이런식으로 짜봤는데 일단 이클립스에서는 오류가 없습니다.
어플을 실행해보면 날짜가 받아지지 않고 null 값으로 출력이 되더군요.
이것의 날짜를 string이나 int 형으로 받을려면 어떻게 해야 할 지 궁금합니다.
getString(int)을 호출했을 때 null이 나오는 경우는 제가 생각하기엔 대부분 컬럼 번호 오류입니다.
컬럼 번호 오류는 질문자께서 번호를 착오하셨거나,
혹은 쿼리를 잘못 하셔서 쿼리된 결과가 잘못 들어오는 경우,
그리고 넘어오는 데이터가 string 형이 아닌 경우로 나누어 볼 수 있습니다.
getString(String) 메소드는 컬럼 번호가 아닌 컬럼명으로 값을 찾아올 수 있는데요,
예를 들어 getString("cur_timestamp") 이런식으로 컬럼 이름을 직접 넣어주시면 됩니다.
하지만 이렇게 해서도 null값이 들어온다면 쿼리가 잘못되었을 가능성이 큽니다.
get... 메소드 중에 찾아보면 쿼리된 데이터들의 모든 컬럼명을 배열로 리턴해주는 메소드가 있습니다.
그 메소드에서 나온 배열값을 확인해봤을 때 의도한 것과 다르다면 쿼리 오류인거죠.
마지막으로 위의 두가지 경우를 다 확인했는데 오류가 없다면
string 형태로 저장된 것이 아니기 때문입니다.
string형으로 넘어오는 것이 아니라면 다른 값으로 받아 보시면 되겠죠.
getLong() 등으로 시도해보세요.