Am I missing something glaringly obvious?
It would be far simpler to connect one side of the switch to ground, and the other side to the digital pin, and turn on the pullup resistor for the pin (pinMode(somePin, INPUT); digitalWrite(somePin, HIGH);).