0

我有一个错误,我不知道为什么会发生,我希望你能帮助我。我正在加载一个由几个networkImageView组成的gridview。我创建了一个 customGridViewAdapter,我发送一个 List imagesUrls 并将这些图像下载到 networkImageViews 中。好吧,在这种情况下,我发送的 url 列表有 10 个元素。当适配器加载这10个networkImageView时没有问题,实际上它可以工作,但我不知道为什么,适配器继续执行两次(此时它占据了url列表的位置0)。所以,我有这个错误

11-16 20:07:03.575: E/AndroidRuntime(6142): FATAL EXCEPTION: main
11-16 20:07:03.575: E/AndroidRuntime(6142): java.lang.NullPointerException
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.setupChild(GridView.java:1373)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.makeAndAddView(GridView.java:1341)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.makeRow(GridView.java:343)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.fillDown(GridView.java:285)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.fillFromTop(GridView.java:418)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.GridView.layoutChildren(GridView.java:1230)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at  android.widget.AbsListView.onLayout(AbsListView.java:1873)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.view.View.layout(View.java:11444)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.view.ViewGroup.layout(ViewGroup.java:4331)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.FrameLayout.onLayout(FrameLayout.java:443)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at  android.view.View.layout(View.java:11444)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.view.ViewGroup.layout(ViewGroup.java:4331)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1666)
11-16 20:07:03.575: E/AndroidRuntime(6142):     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1524)

这是下载图像的适配器的一部分:

public View getView(final int position, View convertView, ViewGroup parent) {  
    // TODO Auto-generated method stub  


    String imageUrlSelected = imagesUrl.get(position);

    View vi=convertView;
    RecordHolder holder;

    if(convertView==null){
        vi = inflater.inflate(R.layout.row_grid_fotos_elemento, null);
        holder = new RecordHolder();

        holder.networkImageView = (NetworkImageView) vi.findViewById(R.id.niv_large);

        if (imagen != null) {
            holder.networkImageView.setImageUrl(imageUrlSelected, imageLoader);
        } else {

        }
    }
    return vi;  
}

public class RecordHolder {

    NetworkImageView networkImageView;
}

当我逐步调试时,我可以看到图像加载成功,但是,正如我之前所说,它继续执行。

我会很感激你的帮助!

4

1 回答 1

0

这可能为时已晚,无法提供帮助。但通常Nullpointer Exceptions使用 Volley 源于未在清单中声明自定义应用程序类。如果未完成此步骤,则您的 volley 应用程序单例不会初始化,因为它onCreate没有被调用。

所以你的清单中应该有这样的东西

<application 
   android:name="ImgController" <--your volley singleton that extends Application 
   android:allowBackup="true" 
   android:label="@string/app_name">`
于 2014-08-27T14:37:51.670 回答