自定义一个 listview 适配器
时间: 2024-03-20 14:42:57 浏览: 61
好的,下面我将提供一个示例代码来演示如何自定义一个 ListView 适配器:
```java
public class MyListAdapter extends BaseAdapter {
Context context;
List<Item> itemList;
public MyListAdapter(Context context, List<Item> itemList) {
this.context = context;
this.itemList = itemList;
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item_layout, null);
}
TextView titleTextView = view.findViewById(R.id.title_text_view);
TextView descriptionTextView = view.findViewById(R.id.description_text_view);
ImageView imageView = view.findViewById(R.id.image_view);
Item item = itemList.get(position);
titleTextView.setText(item.getTitle());
descriptionTextView.setText(item.getDescription());
imageView.setImageResource(item.getImageResourceId());
return view;
}
}
```
这个适配器需要一个上下文(Context)和一个 Item 对象列表。在构造方法中将它们传递进来。在 getCount() 方法中返回列表的长度;在 getItem() 方法中返回指定位置上的 Item 对象;在 getItemId() 方法中返回指定位置上的 Item 对象的 ID。在 getView() 方法中,我们可以根据需要加载一个新的视图或重用一个已有的视图。最后,我们将 Item 对象的数据设置到相应的视图上,并将其返回。
阅读全文