【问题标题】:Trying To retrieve Image From Url in ListView in a simple way尝试以简单的方式从 ListView 中的 Url 检索图像
【发布时间】:2020-05-07 09:43:19
【问题描述】:

这是我从 Firebase 检索图像 URL 和文本的代码。

realleaderboard = FirebaseDatabase.getInstance().getReference().child("leaderboard").child("matchnumber").child("conlocation");

    final ArrayList<HashMap<String, String>> list = new ArrayList<>();
    adapter = new SimpleAdapter(this,list,R.layout.listview_design,
            new String[]{"position","imgurl"}
            ,new int[]{R.id.position,R.id.imgurl});


    realleaderboard.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            list.clear();
            for (DataSnapshot ds: dataSnapshot.getChildren())
            {
                leadearboardAdapter = ds.getValue(LeadearboardAdapter.class);
                HashMap<String, String> item = new HashMap<>();
                item.put("position",leadearboardAdapter.getPosition());
                item.put("imgurl",leadearboardAdapter.getImgurl());
                list.add(item);
            }
            listView.setAdapter(adapter);
        }

这是我的适配器类

public class LeadearboardAdapter {

private String position;
private String imgurl;

public LeadearboardAdapter() {
}

public LeadearboardAdapter(String position, String imgurl) {
    this.position = position;
    this.imgurl = imgurl;
}

public String getPosition() {
    return position;
}

public void setPosition(String position) {
    this.position = position;
}

public String getImgurl() {
    return imgurl;
}

public void setImgurl(String imgurl) {
    this.imgurl = imgurl;
}
}

目前,我将图像 URL 保存在 TextView 中。 但是,我想以一种简单的方式将图像加载到列表项的 ImageView 中。 我参考了一些代码,但发现适配器发生了变化。

【问题讨论】:

  • imgView.setImageUri(uri);或类似的东西。
  • 任何简单的东西。只想在每个列表项中显示一个图像
  • 你可以使用 Picaso 或 Glide 库来加载图片
  • 我知道但是怎么做?我有一个字符串中的 url,并希望用图像填充每个列表项

标签: java android listview


【解决方案1】:

活动:

ListView listView = (ListView) findViewById(R.id.listView);
ImageListAdapter= new ImageListAdapter(names,imageUrls);
listView.setAdapter(ImageListAdapter);

适配器:

    class  ImageListAdapter extends ArrayAdapter<String> {
     ArrayList<String> names;
     ArrayList<String> imageUrls;

    public KategoriaAdapter( ArrayList names, ArrayList imageUrls ){
        super(context, R.layout.list_item, names);
        this.names = names;
        this.imageUrls = imageUrls;
    }

    @Override
    public View getView( int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        rowView = inflater.inflate(R.layout.list_item, parent, false);

        TextView textView = rowView.findViewById((R.id.text));
        textView.setText(names.get(position));

        ImageView imageView = rowView.findViewById(R.id.image_item);
        Picasso.get()
                .load(imageUrls.get(position))
                .into(imageView);
        return rowView;
    }
}

build.gradle

dependencies {
    implementation 'com.squareup.picasso:picasso:2.71828'

【讨论】:

  • 感谢您的回复。目前我不在 会尽快更新。
  • 我很困惑我应该如何处理上面的代码?
猜你喜欢
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 2015-06-03
相关资源
最近更新 更多