title: Why are the onCreate methods of Android Views not just the constructors?
body: <p>Android's <code>onCreate</code> methods seems to do all the things you would normally do in a constructor.</p>
  
  <p>I have some code which programatically adds some views to a layout, and having an <code>onCreate</code> methods seems a little pointless - I only do it for consistency.</p>
  
  <pre><code>    for (Contact contact : manager.getContacts()) {
          GuiContact guiContact = new GuiContact(contact, this);
          guiContact.onCreate();
  
          // add them to the UI
          guiContact.setLayoutParams(new ViewGroup.LayoutParams(
                  ViewGroup.LayoutParams.MATCH_PARENT,
                  ViewGroup.LayoutParams.WRAP_CONTENT
          ));
          contactListLayout.addView(guiContact);
      }
  </code></pre>
  
  <p>Why is this functionality in <code>onCreate</code> rather than in the constructors?</p>
  
  <p>(There would be advantages relating to <code>final</code> members, if the functionality was in the constructors.)</p>