/** Creating the elements of the ListView */ @Override @SuppressLint("InflateParams") public View getView(int position, View convertView, ViewGroup parent) { View rowView = convertView; ViewHolder viewHolder; // Reuse views if (rowView == null) { LayoutInflater inflater = context.getLayoutInflater(); rowView = inflater.inflate(R.layout.activity_closest_stations_list_item, null); // Configure view holder viewHolder = new ViewHolder(); viewHolder.addToFavourites = (ImageView) rowView.findViewById(R.id.cs_list_item_favourite); viewHolder.stationCaption = (TextView) rowView.findViewById(R.id.cs_list_item_station_caption); viewHolder.stationDistance = (TextView) rowView.findViewById(R.id.cs_list_item_station_distance); rowView.setTag(viewHolder); } else { viewHolder = (ViewHolder) rowView.getTag(); } // Fill the data StationEntity station = stations.get(position); viewHolder.addToFavourites.setImageResource(getFavouriteImage(station)); viewHolder.stationCaption.setText( Html.fromHtml(String.format(station.getName() + " (%s)", station.getNumber()))); viewHolder.stationDistance.setText( String.format( context.getString(R.string.app_distance), MapUtils.getMapDistance(context, currentLocation, station))); // Set the actions over the ImageView actionsOverFavouritesImageViews(viewHolder, station); return rowView; }