Well, it is just a hobby, but any book recommendations you may have would be appreciated.
What I see you're mostly lacking is respecting some OOP principles like encapsulation, single responsability, no code repetition, etc... Then the second problem is communication patterns, as I've seen you have up to 10 nested do-whiles and that humongous multipurpose class. You have identified well a couple of commonalities like your model (data) and your state machine, but took an overly complex approach to implementing them.
You need to split your code in meaningful, atomic, independent bits and make them communicate with each other, rather than running them in an overly complicated orchestration impossible to test/bugfix/maintain. Finally to help you solve this problems there are this thing called design patterns that are no more than flexible snippets of code that solve common problems.
There are plenty of resources around the web to help you improve with this. 30 seconds of google brought me to most common
design pattern examples and this other webpage has a tutorial I always
recommend to college beginners to OOP. Feel free to also visit opensource projects to see how they are tackling this problems. Shameless plug to
my old, old prototype. Also if you feel frisky try looking up Model-View-ViewModel and Entity-Component-System, which are two high-level approaches to software development.
Despite having a college education in CS most of the programming I've learned has been working on my own. You get better over time, but it's better if you don't do it in isolation as learning from others gives you so much. Plus you're given the chance of someone looking over your stuff and giving tips, which is invaluable. There's no shame in wanting to learn to be a better programmer. I do and will for many years to come.
EDIT: The other problem is that Android's UI components are quite stiff and slow for videogame purposes. You made them look and run okay but everyone else is rolling external libraries like libgdx, XNA/Monogame, SDL2 or MarmaladeSDK. They give you a more game-oriented approach to graphics, touch events and audio than the base SDK, and include goodies like your JSON parser, LUA scripts, gamepad controls...
EDIT2: I'm OCD about code and love my job, if that wasn't obvious.