2012-10-29 34 views
0

我正在開發一個具有其他Web服務的應用程序。通過從服務器獲取json響應,解析它並使用適配器將其填充到自定義列表視圖中。在那個JSON響應中有url的下載圖像以顯示在列表項中。每一件事情都已經完成,工作正常,除了從URL加載圖像有Nullpointer異常。 我已經做了調試也,logcat的說明如下從url中加載圖像時發生Nullpointer異常

java.lang.NullPointerException 
    at android.widget.AbsListView.obtainView(AbsListView.java:2269) 
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1244) 
    at android.widget.ListView.onMeasure(ListView.java:1156) 
    at android.view.View.measure(View.java:15172) 
    at android.widget.RelativeLayout.measureChild(RelativeLayout.java:602) 
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:415) 
    at android.view.View.measure(View.java:15172) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
    at android.view.View.measure(View.java:15172) 
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:833) 
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
    at android.view.View.measure(View.java:15172) 
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814) 
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
    at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2 
    at android.view.View.measure(View.java:15172) 
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848) 
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100) 
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273) 
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) 
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
    at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
    at android.view.Choreographer.doFrame(Choreographer.java:525) 
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
    at android.os.Handler.handleCallback(Handler.java:615) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4745) 
    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:786) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
    Force finishing activity com.shopping/.views.JsonListView 

有人能幫我找到原因,讓這個異常。

編輯:

 int loader = R.drawable.fb_icon; 
// ImageLoader class instance 
ImageLoader imgLoader = new ImageLoader(_Context); 


imgLoader.DisplayImage(imageUrl, loader, holder.productImage); 
    public void DisplayImage(String url, int loader, ImageView imageView) 
    { 
     stub_id = loader; 
     imageViews.put(imageView, url); 
     Bitmap bitmap=memoryCache.get(url); 
     if(bitmap!=null) 
      imageView.setImageBitmap(bitmap); 
     else 
     { 
      queuePhoto(url, imageView); 
      imageView.setImageResource(loader); 
     } 
     } 
+4

一些源代碼將是有益的... – RvdK

+0

@Androholic請張貼一些代碼,以便我們可以幫助您更多,您使用的延遲加載列表視圖中的下載和顯示圖像。 –

+0

是的,我正在使用延遲加載。並請檢查編輯 – Androholic

回答

1

下面寫一行到您的適配器的getview()方法。

imageLoader.DisplayImage(url[position], imageview1); 

並在下面看到延遲加載鏈接的更多信息,如果您有任何疑問,然後告訴我。

Lazy Loading Listview

+0

但DisplayImage有3個參數傳遞正確嗎? – Androholic

+0

不,它只有2個參數。 –

+0

將arraylist傳遞給包含2個字符串的適配器類(1代表文本,2代表url)。將其轉換爲適配器構造函數中的字符串數組。並使用這些字符串。我如何使用像url [position]這樣的字符串? – Androholic

相關問題