Un an plus tard, il obtient le même poste au sein de l'administration de l'arrondissement de Kelheim, et l'occupe jusqu'à sa nomination comme fonctionnaire du ministère de l'Éducation.
En 1920, il est élu au Landtag de Bavière, et y siège pendant treize ans. Il est nommé ministre des Finances de Bavière le et occupe ce portefeuille jusqu'au .
En 1929, il est nommé à la présidence de la BVP. Farouche adversaire de la NSDAP, il se déclare prêt à s'entendre avec les sociaux-démocrates pour faire échec à Hitler, mais doit faire face à l'immobilisme de Heinrich Held, alors ministre-président du Land. Début 1933, quand il a vent des tractations entre Hitler et von Papen, Held et lui mettent en garde Hindenburg. Prenant contact avec von Papen, Schäffer exprime son opposition à la nomination de Hitler comme chancelier et se dit prêt à soutenir un gouvernement que dirigerait von Papen. Hitler est toutefois nommé chancelier le 30 janvier[1].
Il est contraint de dissoudre la formation par le Parti Nazi en 1933.
En 1945, il participe à la fondation de l'Union chrétienne-sociale en Bavière (CSU). Il fait partie du courant défendant une domination des catholiques, comme au temps du BVP, à l'inverse du président du parti, Josef Müller, favorable à une CSU multi-confessionnelle. Élu président de la CSU du district de Haute-Bavière en , il renonce à son poste dès septembre et quitte la formation. Il tente dans un premier temps de rejoindre le Parti bavarois (BP), mais finit par y renoncer.