... So why don't we refer to it using the outer class' name and dot notation
You seem to be unaware of the static imports in Java language. Mostly I like the way you are suggesting, i.e. refer to the inner class using the outer class name and the dot like ViewGroup.LayoutParams
, instead of having an static imports. But, in some cases, if you might have to do that too many times then it's just better to have a static import rather than repeating the class name. You will see this kind of cases a lot while using the unit-testing frameworks like JUnit, which comes with class with a lot of static methods.
... In the following statement, what object is "this"?
There in your method, by using the keyword - this
, you are referring to the current instance of the class in which you have declared/defined the instance method (i.e. the method @Override public void onCreate(Bundle savedInstanceState)
).