2011-12-10 8 views
0

저는 아직도 신참이기 때문에 기본적인 실수라고 생각합니다.액티비티를 인스턴스화 할 수 없습니다. (...) - ExpendalbleListActivity

package pl.cashflowmanager; 

//all necessary imports are here 

    public class SummaryOverMonths extends ExpandableListActivity { 


     private CfmDbAdapter db; 
     private final Cursor monthsCountQuery = db.SQLDb.rawQuery("select * from expenses", null); //crashes here with: 12-10 12:51:15.101: E/AndroidRuntime(348): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{pl.cashflowmanager/pl.cashflowmanager.SummaryOverMonths}: java.lang.NullPointerException 


    //rest code goes there 

나는이 문제에 대해 논평했다. 쿼리가 정상적으로 작동하며 데이터베이스가 작동 중입니다. 커서가 메소드 안에 들어가야합니까?

답변

0

CfmDbAdapter을 아직 인스턴스화하지 않았기 때문에 NullPointerException이 표시됩니다. 예 필드에 필드를 만들었지 만 쿼리를 호출하기 전에 아무것도 입력하지 않았습니다. 따라서 존재하지 않는 항목에 조치를 취하라고 요청하면 NullPointer이 발생합니다. 처음과 같이

인스턴스화를 :

private CfmDbAdapter db = new CfmDbAdapter(); // Or whatever constructor it expects. 
private final Cursor monthsCountQuery = db.SQLDb.rawQuery("select * from expenses", null); 

트릭을해야한다.

관련 문제