It depends exactly what you mean by "creating new screens". Are you currently doing something like "create one activity for route #29 and another activity for route #20". In that case, passing parameters via an intent is definitely a way to cut down on the number of activities you are making.
However, if you are creating one activity for user input, one activity for city listings, and another activity for bus routes, then I'm afraid that creating activities is one of the only ways to do it. You could go about creating individual pages as Fragments, but that wouldn't really solve your problem, as then you'd just have a bunch of Fragments as opposed to a bunch of Activites.
Think about it this way: if your app was a website, each activity would be a new type webpage that the user would go to. At a certain point, your old webpages just don't have the functionality that you need, so you need to create a new one with new functionality. In the same way, with Android, if you want to add new functionality, you're going to have to add a new Activity/Fragment to get the job done.
One thing to look at, as others have mentioned, is seeing if you can break out any functionality into the Action Bar, but if you're just getting started (which it would appear you are), I'd wait until you have a little more experience managing activites and layouts before you go down that rabbit hole.