In your code:
  (let (...
	activity)
    (dotimes ...
      (setq activity ...)
      (push
        (make-instance 'menu-item
          :menu-item-title (string activity)
          :menu-item-action
          #'(lambda ()
              (print activity)))
	items)))
Instead of 
  #'(lambda () (print activity))
you could use
  (compile nil `(lambda () (print ',activity)))
-- Bob