尝试以简单的方式从ListView中的Url检索图像



这是我从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中。我参考了一些代码,但在适配器中发现了一个更改。

活动:

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'

最新更新