2013-11-20 2 views
0

하위 제트 같이.ListView 어댑터 충돌 작업

11-20 13:14:53.085 1494-1780/system_process I/ActivityManager﹕ START {cmp=pl.krasiniak.krachapp_beta/.Lista_Klas} from pid 3975 
11-20 13:14:53.335 3975-3975/pl.krasiniak.krachapp_beta D/AndroidRuntime﹕ Shutting down VM 
11-20 13:14:53.335 3975-3975/pl.krasiniak.krachapp_beta W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x40a521f8) 
11-20 13:14:53.345 3975-3975/pl.krasiniak.krachapp_beta E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.krasiniak.krachapp_beta/pl.krasiniak.krachapp_beta.Lista_Klas}: java.lang.NullPointerException 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2079) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 
      at android.app.ActivityThread.access$600(ActivityThread.java:132) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:4575) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:511) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at pl.krasiniak.krachapp_beta.Lista_Klas.onCreate(Lista_Klas.java:34) 
      at android.app.Activity.performCreate(Activity.java:4465) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2033) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2104) 
            at android.app.ActivityThread.access$600(ActivityThread.java:132) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1157) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:137) 
            at android.app.ActivityThread.main(ActivityThread.java:4575) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:511) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
            at dalvik.system.NativeStart.main(Native Method) 
11-20 13:14:53.355 1494-1675/system_process W/ActivityManager﹕ Force finishing activity pl.krasiniak.krachapp_beta/.Lista_Klas 
11-20 13:14:53.355 1494-1675/system_process W/ActivityManager﹕ Force finishing activity pl.krasiniak.krachapp_beta/.MainActivity 
11-20 13:14:53.865 1494-1509/system_process W/ActivityManager﹕ Activity pause timeout for ActivityRecord{40ef3f48 pl.krasiniak.krachapp_beta/.Lista_Klas} 
11-20 13:14:54.065 3215-3215/com.cyanogenmod.trebuchet W/Adreno200-EGLSUB﹕ SetSwapInterval() interval: 0 not set 
11-20 13:14:54.105 1494-1506/system_process I/ActivityManager﹕ No longer want com.android.keychain (pid 3950): hidden #16 
11-20 13:15:04.105 1494-1509/system_process W/ActivityManager﹕ Activity destroy timeout for ActivityRecord{40ebf3c0 pl.krasiniak.krachapp_beta/.MainActivity} 
11-20 13:15:04.105 1494-1509/system_process W/ActivityManager﹕ Activity destroy timeout for ActivityRecord{40ef3f48 pl.krasiniak.krachapp_beta/.Lista_Klas} 

난 :이 활동을 시작하는

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_lista__klas); 

     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new PlaceholderFragment()) 
        .commit(); 
     } 

     klasy = getResources().getStringArray(R.array.klasy); 

     ListView listView = (ListView)findViewById(R.id.lista_klas); 
     adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.activity_lista__klas); 
     listView.setAdapter(adapter); 
    } 

그리고 여기이 버튼을 누를 때 로그 캣에서 로그 :

이 전체에서 onCreate입니다 : 내가 listView.setAdapter(adapter);를 언급 할 때 그것은 단지 다른 활동을 보여줍니다 배열이 비어 있지 않은지 확인하십시오. 답변 주셔서 감사합니다, 인사 :

+0

컨텍스트가 null입니까? 다른 가치? – kai

+0

어댑터에 "klasy"배열을 전달하는 것을 잊었습니다. :) –

+0

===> adapter = new ArrayAdapter (getApplicationContext(), R.layout.activity_lista__klas, klasy); – Hardik

답변

0

코드가 정확하지 않을 수

setContentView(R.layout.activity_lista__klas); 

// ... 

ListView listView = (ListView)findViewById(R.id.lista_klas); 
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.activity_lista__klas); 

동일한 레이아웃은 콘텐츠보기 어레이 어댑터 모두에 사용된다. two-argument constructor of ArrayAdapter이 사용되면 리소스 ID는 TextView으로 확인되어야합니다. findViewById() 호출은 ListView 인 더 복잡한 레이아웃을 의미합니다.

내가 제대로 의도를 이해한다면, 다음을 수행하십시오

  • activity_list__klasfindViewById() 반환 null을 비 - 너무 지정된 ID lista_klasListView이 포함되어 있는지 확인합니다.

  • 어댑터 생성자의 레이아웃 리소스 ID를 목록 행을 나타내는 단일 TextView을 포함하는 리소스 파일로 변경하십시오. 또는 다른 생성자 오버로드로 변경하면 배열 항목이 매핑되는 TextView을 지정할 수 있습니다.

  • 실제로 뭔가를 표시하기 위해 어댑터에 데이터를 입력하십시오.

+0

이것은 해결책입니다! 두 번째 요점을 잊어 버렸습니다. 고마워요 :) – wzieba

0

시도해보십시오. 세 번째 매개 변수를 추가하십시오.

adapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.activity_lista__klas,klasy); 

만약 이것이 작동하지 않는다면. 레이아웃 파일도 붙여 넣으십시오. 이 ID와 ListView

ListView listView = (ListView)findViewById(R.id.lista_klas); 

확인하는 것이 그 listView가 null되지 않습니다 :

0

나는이 문제를 추측하고있어이 여기에있다.

또한 어댑터를 만들 때 하나의 TextView이 포함 된 레이아웃 파일을 ArrayAdapter에 전달해야 각 목록 항목을 표시 할 수 있습니다. setContentView에서 사용한 레이아웃과 동일한 레이아웃을 통과했습니다.이 레이아웃은 귀하의 활동에 대한 전체 레이아웃입니다.

+0

아마도 다른 솔루션이 작동하지 않기 때문에 당신이 맞을 수도 있습니다. 나는 Placeholder를 처음 사용했다. (Form Eclipse를 Android Studio로 마이그레이션했다.) activity_lista_klas.xml에없는 ListView를 fragment_lista_klas.xml에 넣을 지 모르겠다. – wzieba

+0

죄송합니다, 정말로 당신의 의견을 이해하지 마세요. –