메모장 프로젝트를 만드려고 합니다.
메인액티비티는 조회화면이고 메인 액티비티에 있는 fab을 누르면 content액티비티로 넘어가게 되고,
content액티비티에서 제목과 내용을 저장할 수 있는 프로젝트입니다.
//MainActivity.java
public class MainActivity extends AppCompatActivity implements OnDatabaseCallback {
private static final String TAG = "tag";
ContentDatabase database;
OnDatabaseCallback callback;
ContentAdapter contentAdapter;
RecyclerView recyclerView_content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contentAdapter = new ContentAdapter();
recyclerView_content = findViewById(R.id.recyclerView_content);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView_content.setLayoutManager(layoutManager);
recyclerView_content.setAdapter(contentAdapter);
ArrayList<Content> result = callback.selectAll();
contentAdapter.setItems(result);
}
@Override
public ArrayList<Content> selectAll() {
ArrayList<Content> result = database.selectAll();
return result;
}
}
이렇게 메인 액티비티 화면이 구성되어 있고
이렇게 content액티비티가 구성되어있는데 ArrayList<Content> result = callback.selectAll(); 부분에서
' --- OnDatabaseCallback.selectAll()' on a null object reference 오류가 발생합니다.
public interface OnDatabaseCallback {
public void insert(String title, String content);
public ArrayList<Content> selectAll();
public void delete(int _id);
}
public class ContentDatabase {
--생략--
private class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
--생략--
public ArrayList<Content> selectAll() {
ArrayList<Content> result = new ArrayList<Content>();
--cursor를 이용한 조회방법 생략--
return result;
}
}
--참고로 Content는 title과 content getter, setter를 generate 해놓은 클래스입니다--
리사이클러뷰에서 조회할 때 selectAll()에서 왜 NullPointer오류가 발생하는지 모르겠습니다.
ContentActivity에서 아직 저장을 해놓은 데이터가 존재하지 않아 selectAll()을 할 것이 없기 때문에 오류가 생기는 것인가요?