适配器不输出图像(android)

Adapters not output image(android)

对不起我的英语。我正在使用适配器,使用它时可能会出错。我正在尝试将图像和文本视图显示为输出。 Textview 在输出中正确出现,但图像不是。请帮助我,我尝试了很多次来修复它。在 DownloadImageTask 中加载图像。在DownloadImageTask中我有classImageLoader,我用过this tutorial。我没有任何错误,我什么都没有(

ArrayList<News> ArrayListNews;
int Resourse;
Context context;
LayoutInflater vi;

public NewsAdapter(Context context, int resource, ArrayList<News> objects) {
    super(context, resource, objects);

    ArrayListNews = objects;
    Resourse = resource;
    this.context = context;

    vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
    if(convertView == null) {
        convertView = vi.inflate(Resourse, null);
        holder = new ViewHolder();

        holder.imageview = (ImageView) convertView.findViewById(R.id.imagenews);
        holder.nameNews = (TextView) convertView.findViewById(R.id.namenews);
        holder.dayNews = (TextView) convertView.findViewById(R.id.daynews);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    new DownloadImageTask(holder.imageview).execute(ArrayListNews.get(position).getImageNews());
    holder.nameNews.setText(ArrayListNews.get(position).getNameNews());
    holder.dayNews.setText(ArrayListNews.get(position).getDayNews());

    return convertView;
}

static class ViewHolder {
    public ImageView imageview;
    public TextView nameNews;
    public TextView dayNews;
}




//this is class set image
private class DownloadImageTask extends AsyncTask<String, Void, String> {
    ImageView bmImage;

    ImageLoader imgLoader;

    public DownloadImageTask(ImageView bmImage) {
        this.bmImage = bmImage;
    }

    @Override
    protected String doInBackground(String... urls) {
        String urldisplay = urls[0];
        return urldisplay;

    }

    protected void onPostExecute(String result) {

        imgLoader = new ImageLoader(context.getApplicationContext());
        imgLoader.DisplayImage(result, bmImage);

    } 
} 

我建议您使用 Picasso library。这是非常容易使用。只需添加依赖项(Android Studio)或将 .jar 文件添加到您的库中(在 Eclipse 中)。

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

就是这样。现在您将不需要 AsyncTask 来下载图像。

您的 getView() 将是

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
    if(convertView == null) {
        convertView = vi.inflate(Resourse, null);
        holder = new ViewHolder();

        holder.imageview = (ImageView) convertView.findViewById(R.id.imagenews);
        holder.nameNews = (TextView) convertView.findViewById(R.id.namenews);
        holder.dayNews = (TextView) convertView.findViewById(R.id.daynews);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    // I am not sure about return value of ArrayListNews.get(position).getImageNews(); 
    // It should be URL pointing to your image file
    Picasso.with(context).load(ArrayListNews.get(position).getImageNews()).into(holder.imageview);

    holder.nameNews.setText(ArrayListNews.get(position).getNameNews());
    holder.dayNews.setText(ArrayListNews.get(position).getDayNews());

    return convertView;
}