【问题标题】:Create ListView using a string of text and a string of images using picasso使用 picasso 使用文本字符串和图像字符串创建 ListView
【发布时间】:2016-11-10 10:43:54
【问题描述】:

我需要在 Android Studio 中创建一个 listView,其中包含一个文本和一个与该文本对应的图像。我知道我必须制作自己的自定义适配器,但是我不知道如何制作它,而不仅仅是每行中的文本视图。适配器将接收文本的字符串数组和对应于图片的 URL 的另一个字符串数组。我怎样才能创建这个适配器来做到这一点。我更喜欢使用毕加索,但如果您还有其他可行的建议。

class MyAdapter extends ArrayAdapter <String> {
Context context;
String[] descriptionArray;
String[] url;


MyAdapter (Context c, String[] importerArray,String[] url) {
    super(c, R.layout.content_orders,R.id.textView2, importerArray);
    this.context =c;
    this.descriptionArray = importerArray;
    this.url = url;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View row = inflater.inflate(R.layout.content_orders, list, false);
    ImageView myImage = (ImageView) row.findViewById(R.id.imageView2);
    TextView description = (TextView) row.findViewById(R.id.textView2);
    description.setText(descriptionArray[position]);
    Picasso.with(OrdersActivity.this).load(url[position]).into(myImage);
    return convertView;
}

【问题讨论】:

  • 请向我们展示您到目前为止所做的尝试。谢谢。
  • @GennadiiSaprykin 我很抱歉。我现在已经更新了。

标签: android listview picasso


【解决方案1】:

使用 BaseAdapter 和 Bean

public class MyAdapter extends BaseAdapter {
private Context mContext;
private List<Bean> mList;

public MyAdapter(Context context,List<Bean> list){
    mContext=context;
    mList=list;
}

@Override
public int getCount() {
    return mList.size();
}

@Override
public Object getItem(int position) {
    return mList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    //use converview recycle
    if(convertView==null){
        holder=new ViewHolder();
        convertView = LayoutInflater.from(mContext).inflate(R.layout.layout_demo, parent, false);
        holder.textView= (TextView) convertView.findViewById(R.id.textview);
        holder.imageView= (ImageView) convertView.findViewById(R.id.imageview);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }

    //set text and url
    holder.textView.setText(mList.get(position).getText());
    Picasso.with(mContext).load(mList.get(position).getUrl()).into(holder.imageView);

    return convertView;
}

class ViewHolder{
    TextView textView;
    ImageView imageView;

}
}

添加类 Bean

public class Bean {
String text;
String url;

public String getText() {
    return text;
}

public void setText(String text) {
    this.text = text;
}

public String getUrl() {
    return url;
}

public void setUrl(String url) {
    this.url = url;
}
}

主活动:

ArrayList<Bean> list=new ArrayList<>();
Bean bean1=new Bean;
bean1.setText("YOUR TEXT");
bean1.setUrl("IMAGE URL");
//and bean2……3……4……
list.add(bean1);
//add(bean2)…………
MyAdapter adapter =new MyAdapter(this,list);
listview.setAdapter(adapter);

【讨论】:

  • 如何将文本和图像从各自的数组中添加到 bean 列表中?很抱歉,我对整个过程有点陌生。
  • 基本上,我假设在我的主要活动类中我必须创建一个变量 List myList = new ArrayList();我会在我的主活动类中编写什么来使用来自文本和 url 字符串数组的信息填充 myList?
猜你喜欢
  • 2016-09-03
  • 2021-04-30
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-10
  • 2012-05-26
相关资源
最近更新 更多