Попытка получить изображение из URL-адреса в ListView простым способом - PullRequest
0 голосов
/ 07 мая 2020

Это мой код для получения URL-адреса изображения и текста из Firebase.

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 элемента списка простым способом. Я сослался на некоторые коды, но обнаружил изменение в адаптере.

1 Ответ

0 голосов
/ 07 мая 2020

Активность:

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'
...