かなり複雑
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView myListView = (ListView) findViewById(R.id.myListView); ArrayList<User> users = new ArrayList<>(); int[] icons = { R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher, }; String[] names = { "yoshida", "kobayashi", "igawa" }; String[] locs = { "Hamamatsucho", "Marunouchi", "Ebisu" }; for(int i = 0; i < icons.length; i++){ User user = new User(); user.setIcon(BitmapFactory.decodeResource( getResources(), icons[i] )); user.setName(names[i]); user.setLoc(locs[i]); users.add(user); } UserAdapter adapter = new UserAdapter(this, 0, users); myListView.setAdapter(adapter); } public class UserAdapter extends ArrayAdapter<User>{ private LayoutInflater layoutInflater; public UserAdapter(Context c, int id, ArrayList<User> users){ super(c, id, users); this.layoutInflater = (LayoutInflater) c.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); } @Override public View getView(int pos, View convertView, ViewGroup parent){ if (convertView == null){ convertView = layoutInflater.inflate( R.layout.list_item, parent, false ); } User user = (User) getItem(pos); ((ImageView) convertView.findViewById(R.id.icon)) .setImageBitmap(user.getIcon()); ((TextView) convertView.findViewById(R.id.name)) .setText(user.getName()); ((TextView) convertView.findViewById(R.id.loc)) .setText(user.getLoc()); return convertView; } } public class User { private Bitmap icon; private String name; private String loc; public Bitmap getIcon() { return icon; } public void setIcon(Bitmap icon) { this.icon = icon; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } }