Android 使用毕加索的一串文本和一串图像创建ListView

Android 使用毕加索的一串文本和一串图像创建ListView,android,listview,picasso,Android,Listview,Picasso,我需要在androidstudio中创建一个列表视图,其中包含一个文本和一个与该文本对应的图像。我知道我必须制作自己的自定义适配器,但是我不知道如何制作它,而不仅仅是每行的文本视图。适配器将接收文本的字符串数组和与图片对应的url的另一个字符串数组。如何创建此适配器来执行此操作。我更愿意用毕加索,但如果你有任何其他的建议也行的话 class MyAdapter extends ArrayAdapter <String> { Context context; String[] desc

我需要在androidstudio中创建一个列表视图,其中包含一个文本和一个与该文本对应的图像。我知道我必须制作自己的自定义适配器,但是我不知道如何制作它,而不仅仅是每行的文本视图。适配器将接收文本的字符串数组和与图片对应的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;
}
class MyAdapter扩展了ArrayAdapter{
语境;
字符串[]描述数组;
字符串[]url;
MyAdapter(上下文c,字符串[]导入数组,字符串[]url){
super(c,R.layout.content\u orders,R.id.textView2,importerray);
this.context=c;
this.descriptionArray=导入阵列;
this.url=url;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图行=充气机。充气(R.layout.content\u orders,list,false);
ImageView myImage=(ImageView)row.findViewById(R.id.imageView2);
TextView description=(TextView)row.findViewById(R.id.textView2);
description.setText(descriptionArray[位置]);
Picasso.with(OrdersActivity.this).load(url[position])到(myImage)中;
返回视图;
}

使用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;

}
}
主要活动:

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);
ArrayList list=new ArrayList();
Bean bean1=新的Bean;
bean1.setText(“您的文本”);
bean1.setUrl(“图像URL”);
//和bean2……3……4……
列表。添加(bean1);
//添加(bean2)…………
MyAdapter=新的MyAdapter(此,列表);
setAdapter(适配器);

请向我们展示您迄今为止所做的尝试。谢谢。@GennadiiSaprykin我很抱歉。我现在已经更新了。如何将文本和图像从各自的数组添加到bean列表中?很抱歉,这整个过程有点新。基本上,我假设在我的主活动类中,我必须创建一个变量列表myList=new ArrayList();我将在我的主活动类中编写什么来用文本和url字符串数组中的信息填充myList?
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);