데이터베이스의 데이터가 포함 된 2 개의 스피너가 포함 된 앱을 만들려고합니다. 버튼을 누르면 새로운 의도가 만들어져 2 개의 스피너가 표시됩니다. 문제는 새 스레드에서 DB 쿼리를 만들어야하고 응용 프로그램을 실행할 때 null 포인터 예외가 발생합니다 (내 이해가 간다면 DB 데이터를 저장하는 배열이 아직 채워지지 않음). 내 질문은 어떻게 DB에서 쿼리를 만들 때까지 회 전자 생성을 지연시킬 수 있습니까? 아래 내 구현의 샘플 코드 : 나는 스피너를 만들 의도는 DB 쿼리를 만드는 클래스에 전화를 걸 : 나는를 만들기 위해 새 스레드를 생성스레드가 실행 완료되었는지 확인하는 방법 Android Studio
String [][] dbData; //the array where i store data from DB
getDBdata myData = new getDBdata(); // create a new instance of the class that queries the DB
dbData = myData.getData(); // I get the data
Log.e("My log: ", String.valueOf(dbData.length)); //and here it crashes, giving me a null pointer exception
그리고 클래스를 DB 쿼리 :
public getDBdata()
{
Thread thread = new Thread(new Runnable(){
@Override
public void run() {
DBconn(); //make a DB query
}
});
thread.start();
}
public String[][] getData()
{
return data;
}
건배는 내가 찾고 있던 것이 었습니다! – relysis