@Override public View getView(int position, View convertView, ViewGroup parent) { MealItemHolder mealItemHolder; View view = convertView; if (view == null) { mealItemHolder = new MealItemHolder(); LayoutInflater inflater = ((Activity) context).getLayoutInflater(); view = inflater.inflate(R.layout.activity_meal_custom_row, parent, false); mealItemHolder.name = (TextView) view.findViewById(R.id.meal_custom_row); view.setTag(mealItemHolder); } else { mealItemHolder = (MealItemHolder) view.getTag(); } Meal eItem = this.mealsList.get(position); String mealName = eItem.getName(); Double calories = eItem.getCaloriesAmount(); int gi = eItem.getGI(); Date startDate = eItem.getStartMealTime(); StringBuilder rowText = new StringBuilder() .append("Meal: ") .append(mealName) .append("\n") .append("Calories: ") .append(calories) .append("\n") .append("GI: ") .append(gi) .append("\n") .append("Start date: ") .append(DATE_FORMAT.format(startDate)) .append("\n") .append("Meal Description: ") .append(eItem.getDescription()) .append("\n") .append("Reminder: "); if (null != eItem.getReminder()) { rowText.append(DATE_FORMAT.format(eItem.getReminder())); } else { rowText.append(" - "); } mealItemHolder.name.setText(rowText); return view; }