首先,您需要为列表条目自定义布局。一个包含 ImageView 、 TextView 和 CheckBox 的简单 RelativeLayout 就足够了。
然后,您可能想要构建自己的自定义适配器,该适配器可以扩展 BaseAdapter(或 SimpleAdapter 或 CursorAdapter 或 ArrayAdapter 或...)。适配器会将列表的数据绑定到您的自定义布局。例如,如果您的数据包含在游标中,它将如下所示:
private class MyCustomAdapter extends CursorAdapter {
public MyCustomAdapter(Context context) {
super(context, null);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
//Return a list item view
return getLayoutInflater().inflate(R.layout.my_custom_list_item_layout, parent, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
//Get views from layout
final ImageView imageView = (ImageView) view.findViewById(R.id.list_item_image);
final TextView textView = (TextView) view.findViewById(R.id.list_item_text);
final CheckBox checkBox = (CheckBox) view.findViewById(R.id.list_item_checkbox);
//Get data from cursor
final String text = cursor.getString(...);
//Add listener to the checkbox
checkBox.setOnClickListener(new OnClickListener() {...});
//Bind data
textView.setText(text);
}
}