我需要在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;
}
使用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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句