簡體   English   中英

嘗試以簡單的方式從 ListView 中的 Url 檢索圖像

[英]Trying To retrieve Image From Url in ListView in a simple way

這是我從 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);
        }

這是我的適配器 class

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 中。 我參考了一些代碼,但發現適配器發生了變化。

活動:

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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM