SO al rescate, con el onKeyDown y el evento de tecla KeyEvent.KEYCODE_HEADSETHOOK:
http://stackoverflow.com/a/41790723/1407634
De todas formas como bien dices hay mucho código parecido e incluso duplicado, y mientras más código más fácil cometer errores o que se te escape un número por ahí. Tan importante es que en pantalla vayan saliendo cosas como ir construyendo una buena base para ir adquiriendo buenas prácticas de programación poco a poco. Ánimo