从Async任务设置ImageAdapter时的Nul指针异常 - Android

时间:2015-09-18 12:44:54

标签: android android-asynctask

我尝试从movieDatabaseApi获取数据并使用Picasso库在GridView中显示它。 使用AsyncTask我设法获得了我需要的URL(我可以在日志中看到它们)。 从此,我迷失了。

        @Override
    protected void onPostExecute(String[] arrayList) {
        Log.v(LOG_TAG,arrayList[0]);

        mImageAdapter  = new ImageAdapter(getActivity(), arrayList);
    }

我已将我的ImageAdapter更改为接受此数组作为参数,但尝试从此位置将适配器设置为gridView会给我NullPointerException。即使我设法附加新的适配器,下一步是什么?如何在适配器中访问此数组? 这是我目前的适配器代码:

    public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private String[] resultingArray;

    public ImageAdapter(Context c, String[] arrayList) {
        mContext = c;
        resultingArray = arrayList;
    }

    @Override
    public int getCount() {
        return resultingArray.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;

        String url="zero";
        url = resultingArray[position];
        Log.v("check urls",url);
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setAdjustViewBounds(true);
        } else {
            imageView = (ImageView) convertView;
        }

        Picasso.with(mContext).load(url).into(imageView);
        return imageView;

    }
}

1 个答案:

答案 0 :(得分:0)

您不显示任何要显示图像的网格项目..使用自己的ItemLayout创建自定义适配器

看看这个

http://www.learn2crack.com/2014/01/android-custom-gridview.html