I usually create a separate page with a listview, which can have a datasource nanoflow. Use the same page parameter object as your form page and the onclick nanoflow of the listview will get the page object and the selected item. Set the selected item on your context object and close the selection page. On the form page, I add two buttons, one with a text to choose the city or whatever is applicable, and the other one to show the current value. Use conditional visibility expression to show applicable button: FormEntity_city != empty when value has been selected and FormEntity_city = empty when no value has been selected, replace FormEntity_city with your association.
Note that this is on smartphones, where space is limited anyway. For tablets, this might be less desirable from a UX point of view.