1.Is there method provided by android that we should implement?
No. Although it is acceptable to replace views within an Activity, there is no convenient way of keeping a View collection and navigating between them.
2.Handle back keys on SetOnKeyListner of each view
Definitely not.
3.Handle onBackPressed() of activity to see which view is currently on and manually inflate another view
Handling BACK press is something which should only be done when absolutely necessary. What you have to remember is users of Android devices will expect a regular use and feel - deviating too far from expected behaviour may make your app less appealing. In saying that, depending on what your app does, handling BACK at the Activity level might be acceptable BUT you still have no easy way of managing a stack of Views.
4.Use fragment transaction?
Yes. Definitely the preferred approach. Fragments combine sub-Activity functionality as well as a View in a modular form. The OS will also handle the back stack for you making your life much easier when it comes to coding the app.