look into what a fragment is. have one main activity who's job is to load other fragments as the user clicks. So having the main menu itself in the mainActivity is ok but when the user clicks it should load another fragment to display the results.
I don't see anything wrong with creating a menu like this. Some users with smaller screens might have to scroll through unless you can make the boxes smaller for those devices. Or add a scrollview.
if your talking about clean architecture thats a huge other story and you can look into model view presenter architecture.
UPDATE: its recommended to user fragment for this instead of activity. Fragments allow for reusability. So if some of your screens have the same basic behavior you can re-use a fragment. If you think there not going to look alike at all you could just use all activities i suppose. I've used both ways.
You might run into a case where when the device changes orientation you want to show a master/detail view or some other kind of view. Fragments come in handely for this.