code: @SuppressWarnings("unchecked")
  	public <E> View createViewForField(ProfileField<E> field, ViewGroup container, FieldValueListener<E> listener) {
  		E currentValue = mContainer.getFieldValue(field);
  
  		if (field instanceof TagProfileField) {
  			return createTagView((TagProfileField) field, (String[]) currentValue, listener, container, mMode == Mode.EDIT);
  		}
  
  		switch (mMode) {
  		case SELF:
  		case REMOTE:
  			return createStandardDisplayView(field, currentValue, container);
  		case EDIT:
  			if (field instanceof MultipleChoicheProfileField) {
  				return createSpinner((MultipleChoicheProfileField<E>) field, currentValue, listener, container);
  			} else if (field instanceof DateProfileField) {
  				return createDateView((DateProfileField) field, (Date) currentValue, (FieldValueListener<Date>) listener, container);
  			} else {
  				return createStandardEditView(field, currentValue, listener, container);
  			}
  
  		default:
  			return null;
  		}
  	}
docs: Creates a new view to visualize the value and the clearance of the given
  profile field. If the {@link Mode} of visualization is {@link Mode#EDIT},
  the view will support modifications. Such modifications will trigger the
  appropriate call to a {@link FieldValueListener}, if provided.
  
  @param field
  - the field to visualize
  @param container
  - the {@link ViewGroup} to which the view is intended to be
  attached, as in {@link LayoutInflater#inflate(int, ViewGroup)}
  @param listener
  - the listener that will be notified of value or clearance
  changes in {@link Mode#EDIT} mode.
  @return - the view that visualizes the profile field. Please note that
  the view is <strong>NOT</strong> attached to the container;