[英]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.