Hello J.! Here's what worked for us - I had twins, a boy and a girl, and they potty trained completely differently. My daughter would go at home but never in public, no restaurants, not at church, not at mommy's day out - nothing but home. She would hold it for literally an hour and do "the dance" the whole time until she could get home. NOt only was this not good for her bladder, it put a real cramp in our schedule - we could not go to the park, the botanical gardens, nothing fun because she would have to go back home to use the bathroom.
Finally, I made her a little piece of paper and I wrote a 1 through 10 on it. I also put a new toy (a Dora dollhouse I bought at a garage sale) on a shelf in the closet. I showed her the house and told her she had to go potty 10 times in a public place before she could have it. So when we would get to the grocery store (or wherever) and she would refuse to go I would just say "What a shame. We'll just have to start working on EARNING our Dora house tomorrow." She would hold it for a few more minutes then invariably, she would always go. I emphasized the word EARN.
Each time she went, I let her put a sticker (star, circle, whatever) by the number on the paper. On occasion I would take her to the closet and remind her of what she was earning. It took her maybe 2 to 3 weeks before she earned all of her stars, and she was absolutely ecstatic when she EARNED her house. She tried to have a relapse about a week later but I let her know quickly that I knew that she could go potty in public and if she wanted to go back to the old way we would have to take her house away. Never had a problem since, and that was probably 6 months ago.
Oh and really, it was more like 14 times before I let her have it. I wanted to make sure it stuck and a couple times we really and truly forgot to put the stickers on! lol!
Good luck.