마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Cursor on a null object reference 에러가나는데 어찌해야할까요?

0 추천

잘 사용하다 소스 새로 개편하면서 작업중인데 Cursor 에러가 납니다.

mCursor = db.getAllChat();
messageAdapter.swqpCursor(mCursor);
messageAdapter = new MessageAdapter(MessageActivity.this, mCursor, uid);
recyclerView.setAdapter(messageAdapter);
messageAdapter.notifyItemChanged(10);
recyclerView.scrollToPosition(mCursor.getCount()-1);
mCursor.close();

 

messageAdapter.swqpCursor(mCursor);

문제가 되는 구간 입니다. 

mCursor 만 for문을 돌려 들어가 있는 값을 획인해보면 분명 다 있는데 왜 null 에러가 나는거죠??

cursor 사용 전 moveToFirest를 하라는 내용도 보고 했는데 원인을 찾지 못해 도움을 구합니다. 

답답한건 이전에 잘 사용하던 소스인데 제가 수정하면서 탈이 났습니다 ㅠ

딱히 저게 뭔가 복잡한 다른 소스들과 연결되어 작동하는거도 아니고 db 에서 받아와 cursor에 담아

옮기는 과정인데 뭘까요?  저부분 삭제하고 db 작동 확인해보면 db는 저장은 잘 됩니다.

getAllchat에는 별거 없이 전체 내용 긁어오는 게 전부입니다. 그걸 리턴 받는거고요. 도움의 손길이 필요합니다 ㅠ

return db.rawQuery("SELECT * FROM " + ChatContract.ChatEntry.TABLE_NAME,null);
public void swqpCursor(Cursor newCursor){
    if(mCursor!=null) {
        mCursor.close();
    }
    this.mCursor = newCursor;
    this.notifyDataSetChanged();
}
nickeun (540 포인트) 님이 2018년 4월 9일 질문
nickeun님이 2018년 4월 9일 수정

1개의 답변

0 추천
swqpCursor에서 newCursor가 null인지 체크해 보세요.
익명사용자 님이 2018년 4월 10일 답변
댓글 감사합니다
cursor의 위치 변화에 대한 이해를 제가 잘 못해서 벌어진 일이네요. ^^
...