Why do we always have to cast the value returned by the method findViewById(id) ? The method already returns a view, as I\'ve seen in google reference :
Yes, findViewById() returns View. You can omit casting if you don't need to use the methods of any direct/indirect subclasses, that extends View, such as ImageView, LinearLayout, TextView etc.
View is the base class for widgets, which are used to create interactive UI components (buttons, text fields, etc.)
And of course you can downcast to any subclass of View