2012-12-09 4 views
0

안녕하세요, 이건 내 코드입니다 : DAtabaseConnector 클래스가스피너 커서

private void fillSpinner(){ 

    DatabaseConnector dbConnector = new DatabaseConnector(this); 
    Cursor c = dbConnector.getAllCasas(); 
    startManagingCursor(c); 
    String[] from = new String[]{"nombrecasa"}; 
    int[] to = new int[]{android.R.id.text1}; 
    SimpleCursorAdapter adapter = 
    new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, from, to); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    Spinner s = (Spinner) findViewById(R.id.casaspinner); 
    s.setAdapter(adapter); 
    } 

어디 모든 커서가 있고 casaspinner가 XML 파일에 올바르게 선언되어 있습니다.

onCreate 메서드에서이 메서드를 호출하면 "죄송합니다. 응용 프로그램이 예기치 않게 중지되었습니다."logcat에 "NullPointerException"이 표시됩니다. 여기에서 몇 가지 대답을 시도했지만 충돌이 계속 발생합니다.

12-09 10:02:49.399: W/ResourceType(322): Attempt to retrieve bag 0x7f060003 which is invalid or in a cycle. 
12-09 10:02:49.489: D/AndroidRuntime(322): Shutting down VM 
12-09 10:02:49.489: W/dalvikvm(322): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
12-09 10:02:49.509: E/AndroidRuntime(322): FATAL EXCEPTION: main 
12-09 10:02:49.509: E/AndroidRuntime(322): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.appvino/com.example.appvino.Actualizacion}:  java.lang.NullPointerException 
12-09 10:02:49.509: E/AndroidRuntime(322): at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.os.Looper.loop(Looper.java:123) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.ActivityThread.main(ActivityThread.java:3683) 
12-09 10:02:49.509: E/AndroidRuntime(322): at java.lang.reflect.Method.invokeNative(Native Method) 
12-09 10:02:49.509: E/AndroidRuntime(322): at java.lang.reflect.Method.invoke(Method.java:507) 
12-09 10:02:49.509: E/AndroidRuntime(322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
12-09 10:02:49.509: E/AndroidRuntime(322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
12-09 10:02:49.509: E/AndroidRuntime(322): at dalvik.system.NativeStart.main(Native Method) 
12-09 10:02:49.509: E/AndroidRuntime(322): Caused by: java.lang.NullPointerException 
12-09 10:02:49.509: E/AndroidRuntime(322): at com.example.appvino.DatabaseConnector.getAllCepas(DatabaseConnector.java:95) 
12-09 10:02:49.509: E/AndroidRuntime(322): at com.example.appvino.Actualizacion.llenaCepaSpinner(Actualizacion.java:129) 
12-09 10:02:49.509: E/AndroidRuntime(322): at com.example.appvino.Actualizacion.onCreate(Actualizacion.java:40) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-09 10:02:49.509: E/AndroidRuntime(322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
12-09 10:02:49.509: E/AndroidRuntime(322): ... 11 more 
+1

문제는 95''라인에서'DatabaseConnector' 클래스의'getAllCepas' 방법에'null' 참조를 가지고에서 비롯됩니다. – Luksprog

답변

0

나는 getwritable 데이터베이스 누락되었습니다

여기에 로그 캣입니다. 여기에 솔루션입니다 :

private void llenaCasaSpinner(){ 

     DatabaseConnector dbConnector = new DatabaseConnector(this); 
     dbConnector.open(); 
     Cursor c = dbConnector.raw("SELECT _id, nombrecasa FROM casa"); 
     startManagingCursor(c); 
     String[] from = new String[]{"nombrecasa"}; 
     int[] to = new int[]{android.R.id.text1}; 
     SimpleCursorAdapter adapter = 
     new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, from, to); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     Spinner s = (Spinner) findViewById(R.id.casaspinner); 
     s.setAdapter(adapter); 
     dbConnector.close(); 
     }