2012-05-15 17 views
0

這裏是我的代碼:
這是我的handleMessage功能:撥打國際長途的handleMessage()處理程序的函數給出空指針異常

public void handleMessage(Message msg) 
        { 
         if(msg.what==1){ 
         ArrayList<pack.Form> o=(ArrayList<pack.Form>)msg.obj; 
         pb.setVisibility(8);try{ 

         showList(o); 
         }catch(Exception e) 
         { 
          Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); 
         } 
} 

這是我showList功能:

public void showList(ArrayList<Form> v) 
     { 
      try{ListView listView = (ListView) ListActivity.this.findViewById(R.id.mylist); 
      listView.setTextFilterEnabled(true); 
      String[] values=new String[200]; 
      int i=0; 
      Iterator<Form> it=v.listIterator(); 
      while(it.hasNext()) 
      { 
       values[i]=((Form)it.next()).body; 
      } 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, 
        R.layout.list_item,values); 

       // Assign adapter to ListView 
       listView.setAdapter(adapter);} 
      catch(Exception e){Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();} 
     } 

一當調用showList()函數時拋出null ponter異常。問題是什麼?
logcat的輸出

D/AndroidRuntime( 914): Shutting down VM 
W/dalvikvm( 914): threadid=3: thread exiting with uncaught exception (group=0x4 
001b188) 
E/AndroidRuntime( 914): Uncaught handler: thread main exiting due to uncaught e 
xception 
E/AndroidRuntime( 914): java.lang.NullPointerException 
E/AndroidRuntime( 914):  at android.widget.ArrayAdapter.createViewFromRes 
ource(ArrayAdapter.java:355) 
E/AndroidRuntime( 914):  at android.widget.ArrayAdapter.getView(ArrayAdap 
ter.java:323) 
E/AndroidRuntime( 914):  at android.widget.AbsListView.obtainView(AbsList 
View.java:1256) 
E/AndroidRuntime( 914):  at android.widget.ListView.measureHeightOfChildr 
en(ListView.java:1147) 
E/AndroidRuntime( 914):  at android.widget.ListView.onMeasure(ListView.ja 
va:1060) 
E/AndroidRuntime( 914):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime( 914):  at android.view.ViewGroup.measureChildWithMargin 
s(ViewGroup.java:3023) 
E/AndroidRuntime( 914):  at android.widget.LinearLayout.measureChildBefor 
eLayout(LinearLayout.java:888) 
E/AndroidRuntime( 914):  at android.widget.LinearLayout.measureVertical(L 
inearLayout.java:350) 
E/AndroidRuntime( 914):  at android.widget.LinearLayout.onMeasure(LinearL 
ayout.java:278) 
E/AndroidRuntime( 914):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime( 914):  at android.view.ViewGroup.measureChildWithMargin 
s(ViewGroup.java:3023) 
E/AndroidRuntime( 914):  at android.widget.FrameLayout.onMeasure(FrameLay 
out.java:245) 
E/AndroidRuntime( 914):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime( 914):  at android.widget.LinearLayout.measureVertical(L 
inearLayout.java:464) 
E/AndroidRuntime( 914):  at android.widget.LinearLayout.onMeasure(LinearL 
ayout.java:278) 
E/AndroidRuntime( 914):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime( 914):  at android.view.ViewGroup.measureChildWithMargin 
s(ViewGroup.java:3023) 
E/AndroidRuntime( 914):  at android.widget.FrameLayout.onMeasure(FrameLay 
out.java:245) 
E/AndroidRuntime( 914):  at android.view.View.measure(View.java:7964) 
E/AndroidRuntime( 914):  at android.view.ViewRoot.performTraversals(ViewR 
oot.java:763) 
E/AndroidRuntime( 914):  at android.view.ViewRoot.handleMessage(ViewRoot. 
java:1633) 
E/AndroidRuntime( 914):  at android.os.Handler.dispatchMessage(Handler.ja 
va:99) 
E/AndroidRuntime( 914):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime( 914):  at android.app.ActivityThread.main(ActivityThrea 
d.java:4363) 
E/AndroidRuntime( 914):  at java.lang.reflect.Method.invokeNative(Native 
Method) 
E/AndroidRuntime( 914):  at java.lang.reflect.Method.invoke(Method.java:5 
21) 
E/AndroidRuntime( 914):  at com.android.internal.os.ZygoteInit$MethodAndA 
rgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime( 914):  at com.android.internal.os.ZygoteInit.main(Zygot 
eInit.java:618) 
E/AndroidRuntime( 914):  at dalvik.system.NativeStart.main(Native Method) 

I/Process ( 52): Sending signal. PID: 914 SIG: 3 
I/dalvikvm( 914): threadid=7: reacting to signal 3 
E/dalvikvm( 914): Unable to open stack trace file '/data/anr/traces.txt': Permi 
ssion denied 
I/Process ( 914): Sending signal. PID: 914 SIG: 9 
I/WindowManager( 52): WIN DEATH: Window{44da9a90 com.list/com.list.ListActivit 
y paused=false} 
I/ActivityManager( 52): Process com.list (pid 914) has died. 
I/UsageStats( 52): Unexpected resume of com.android.launcher while already res 
umed in com.list 
E/gralloc ( 52): [unregister] handle 0x47bf40 still locked (state=40000001) 
W/InputManagerService( 52): Got RemoteException sending setActive(false) notif 
ication to pid 914 uid 10030 
D/dalvikvm( 183): GC freed 28 objects/1360 bytes in 149ms 
+1

請提供完整的錯誤日誌,以便我們得到行號。 –

+0

AS查看listView爲null或ArrayList

v可能爲空。 –

+0

「顯示列表功能未被調用」... 「當該函數被調用時引發空pterter異常」 這兩個句子是相互矛盾的。 – ideasrule

回答

1

這是一個非常愚蠢的錯誤。我沒有增加showList()函數for循環中的i值。剛剛加入i++工作。對不起,浪費你的時間。

+0

然後接受這個作爲關閉這個故事的最佳答案... :) –

+0

@DheereshSingh:不幸的是,只有兩天後才能接受它(: – Ashwin

1

是什麼我發現here。嘗試初始化您的String[] values,因爲它已在鏈接中完成並告訴我們結果。

+0

請檢查我的答案。 – Ashwin