I copied your code and got it running.
You can leave the two local classes in the main file, but I would consider it poor practice. My advice is to pull the SemGPAScreen and GPAcalScree classes into separate files (of the same name).
The issue with pushScreen is that you are calling it from a Screen class, not a UiApplicaiton class. pushScreen() is not a method of Screen, it is a method of UiApplication. So, I see why you are using UiApplication.getUiApplication().pushScreen(). Not the way I would have done it, but this is acceptable. I gave you some bad (or incomplete) advice in the earlier post.