Benefits and limitations of different implementation approaches
<p>I just started learning Android development and I read there was basically 3 main approaches to 'build a view' which are :</p>

<blockquote>
  <ul>
  <li>Java-based: Use Java to define Strings, lay out window, create GUI controls, and assign event handlers. Like Swing programming.</li>
  <li>XML-based: Use XML files to define Strings, lay out window, create GUI controls, and assign event handlers. The Java method will read the
  layout from XML file and pass it to setContentView</li>
  <li>Hybrid: Use an XML file to define Strings, lay out window and create GUI controls. Use Java to assign event handlers</li>
  </ul>
</blockquote>

<p><strong>What are the benefits and limitations of these 3 different approaches ?</strong></p>

<p><strong>Which one should be rather used by a beginner or a confirmed programmer ?</strong></p>

<p>I'm not asking for subjective answer here ( before being flagged :) ). 
There must be some <strong>facts</strong> that make these approaches different from one another (speed, maintainability, readability...)</p>
