I dropped my charger and broke the button. I had carved down a wooden dowel to make a replacement but it never worked well. So spent a few minutes with my calipers and openSCAD and whipped this up. Fits perfect and doesn't fall out on mine!
I printed this at .01mm to try get as much of the rounded top as I could, I'd suggest printing at least 4 at once even if you don't need that many or plating it up with some other pieces since printing one by itself it doesn't have time to cool between layers and will get sloppy. I used 3 perimeters for strength and infill didn't really matter.
The button is slightly tapered which should keep it from falling out, and the hole the pushbutton goes into is slightly tapered as well which allows it to grip the button quite well.
Grabbed my calipers and measured one of the original buttons for OD and length as well as depth of the button hole. Then measured the switch to size the width/taper of the hole in the bottom. The openSCAD file is pretty ugly because I just tossed this together at 1AM while waiting on my laundry..but it works :D