Home | History | Annotate | Download | only in projects
      1 page.title=Using Code Templates
      2 @jd:body
      3 
      4   <div id="qv-wrapper">
      5     <div id="qv">
      6       <h2>In this document</h2>
      7 
      8       <ol>
      9         <li><a href="#app-templates">Application Templates</a>
     10           <ol>
     11             <li><a href="#blank-activity">BlankActivity Template</a></li>
     12             <li><a href="#full-screen-activity">Full Screen Activity Template</a></li>
     13             <li><a href="#master-detail-activity">Master Detail Flow Template</a></li>
     14           </ol>
     15         </li>
     16 
     17         <li><a href="#activity-templates">Activity Templates</a>
     18           <ol>
     19             <li><a href="#login-activity">Login Activity Template</a></li>
     20             <li><a href="#settings-activity">Settings Activity Template</a></li>
     21           </ol>
     22         </li>
     23         <li><a href="#object-templates">Other Templates</a></li>
     24       </ol>
     25 
     26     </div>
     27   </div>
     28 
     29 
     30 <p>The SDK tools provide templates for quickly creating Android application projects with the basic
     31   structure or for adding components to your existing projects. The code templates
     32   provided by the Android SDK follow the Android design and development guidelines to get you on the
     33   right track to creating a beautiful, functional application.</p>
     34 
     35 <p>There are several types of Android code templates, which can create anything from an entire
     36   application down to specific application components. The main categories of code templates are as
     37   follows:</p>
     38 
     39 <ul>
     40   <li><a href="#app-templates">Application Templates</a></li>
     41   <li><a href="#activity-templates">Activity Templates</a></li>
     42   <li><a href="#object-templates">Other Templates</a></li>
     43 </ul>
     44 
     45 
     46 <h2 id="app-templates">Application Templates</h2>
     47 
     48 <p>Application templates create basic Android applications that you can immediately run and test
     49   on your Android device. These templates are available when you create a new Android project,
     50   though you can also use these templates to <a href="#activity-templates">add new activities</a>
     51   to an existing project.</p>
     52 
     53 <p>To use Android application templates:</p>
     54 
     55 <ol>
     56   <li>In Eclipse, with the Android Development Tools (ADT) plugin installed, select <strong>File
     57     &gt; New &gt; Android</strong>.</li>
     58   <li>Select <strong>Android &gt; Android Application Project</strong>, and click
     59     <strong>Next</strong>.</li>
     60   <li>Enter the settings for your application, including <strong>Application Name</strong>,
     61     <strong>Project Name</strong>, <strong>Package Name</strong>, API level settings and
     62     presentation <strong>Theme</strong>, and click <strong>Next</strong>.</li>
     63   <li>Enter the project configuration options, and click <strong>Next</strong>.</li>
     64   <li>Optionally enter launcher icon settings, and click <strong>Next</strong>.</li>
     65   <li>In the <strong>Create Activity</strong> page, select an application template to use.
     66     <ul>
     67       <li><a href="#blank-activity">BlankActivity</a></li>
     68       <li><a href="#full-screen-activity">FullScreenActivity</a></li>
     69       <li><a href="#master-detail-activity">MasterDetailFlow</a></li>
     70     </ul>
     71   </li>
     72 </ol>
     73 
     74 <p class="note">
     75   <strong>Note:</strong> The other activity template options also create applications, however these
     76   applications require further modification before they can be launched on an Android device.
     77 </p>
     78 
     79 
     80 <h3 id="blank-activity">Blank Activity Template</h3>
     81 
     82 <table>
     83   <tr>
     84     <th width="206px">Example</th>
     85 
     86     <th>Description</th>
     87   </tr>
     88 
     89   <tr>
     90     <td><img src="{@docRoot}images/code_templates/ba-no-navigation.png" alt="" />
     91     </td>
     92 
     93     <td><p>The <strong>BlankActivity</strong> template with the <strong>Navigation Type:
     94       None</strong> option creates a simple application that follows the
     95       <a href="{@docRoot}design/index.html">Android Design</a> guidelines. Use this template to
     96       create a basic, minimal app as a starting point for your project.</p>
     97 
     98       <p>This template includes:</p>
     99 
    100       <ul>
    101         <li>Title bar ({@link android.app.ActionBar} on Android 3.0 and later)</li>
    102         <li>Options menu (action overflow on Android 3.0 and later) </li>
    103         <li>Basic layout</li>
    104       </ul>
    105     </td>
    106   </tr>
    107 
    108   <tr>
    109     <td><img src="{@docRoot}images/code_templates/ba-tabs.png" alt="" />
    110     </td>
    111 
    112     <td><p>The <strong>BlankActivity</strong> template with the <strong>Navigation Type:
    113       Tabs</strong> or <strong>Tabs + Swipe</strong> option creates an application with
    114       three sections based on the {@link android.app.Fragment} class and a tabbed user
    115       interface.</p>
    116 
    117       <p>This template includes:</p>
    118 
    119       <ul>
    120         <li>{@link android.app.ActionBar} for tab controls</li>
    121         <li>{@link android.app.Fragment} objects for section content</li>
    122         <li>Optional swipe gesture support based on the
    123           <a href="{@docRoot}design/patterns/swipe-views.html">swipe view</a> design pattern,
    124           which extends {@link android.support.v4.app.FragmentPagerAdapter} to manage section
    125           fragments</li>
    126       </ul>
    127     </td>
    128   </tr>
    129 
    130   <tr>
    131     <td><img src="{@docRoot}images/code_templates/ba-title-strip.png" alt="" />
    132     </td>
    133 
    134     <td><p>The <strong>BlankActivity</strong> template with the <strong>Navigation Type:
    135       Swipe Views + Title Strip</strong> option creates an application with three
    136       {@link android.app.Fragment} sections, a compact title strip header (known as
    137       <a href="{@docRoot}design/building-blocks/tabs.html#scrollable">Scrollable Tabs</a> in the
    138       <a href="{@docRoot}design/index.html">Android Design</a> guide) and swipe navigation between
    139       the sections, based on the <a href="{@docRoot}design/patterns/swipe-views.html">swipe
    140       view</a> design pattern.</p>
    141 
    142       <p>This template includes:</p>
    143 
    144       <ul>
    145         <li>{@link android.support.v4.view.PagerTitleStrip} for section titles</li>
    146         <li>{@link android.app.Fragment} objects for section content</li>
    147         <li>{@link android.support.v4.app.FragmentPagerAdapter} to manage section fragments</li>
    148       </ul>
    149     </td>
    150   </tr>
    151 
    152   <tr>
    153     <td><img src="{@docRoot}images/code_templates/ba-dropdown.png" alt="" />
    154     </td>
    155 
    156     <td><p>The <strong>BlankActivity</strong> template with the <strong>Navigation Type:
    157       Dropdown</strong> option creates an application that extends
    158       {@link android.support.v4.app.FragmentActivity}, containing three
    159       {@link android.app.Fragment} sections, with an {@link android.app.ActionBar} using list mode
    160       navigation.</p>
    161 
    162       <p>This template includes:</p>
    163 
    164       <ul>
    165         <li>{@link android.app.ActionBar} for list mode navigation</li>
    166         <li>{@link android.app.Fragment} objects for section content</li>
    167       </ul>
    168     </td>
    169   </tr>
    170 </table>
    171 
    172 
    173 <h3 id="full-screen-activity">Full Screen Activity Template</h3>
    174 
    175 <table>
    176   <tr>
    177     <th width="240px">Example</th>
    178 
    179     <th>Description</th>
    180   </tr>
    181 
    182   <tr>
    183     <td><img src="{@docRoot}images/code_templates/full-screen-activity.png" alt="" />
    184     </td>
    185 
    186     <td><p>This template provides an implementation of an activity which alternates between a
    187       primary, full screen view and a view with standard user interface controls, including the
    188       notification bar and application title bar. The full screen view is the default and a user
    189       can activate the standard view by touching the device screen.</p>
    190 
    191       <p>This template includes:</p>
    192 
    193       <ul>
    194         <li>{@code SystemUiHider} implementation that manages hiding of the system user interface
    195           using a version-compatible approach</li>
    196         <li>Basic layout</li>
    197       </ul>
    198     </td>
    199   </tr>
    200 </table>
    201 
    202 
    203 <h3 id="master-detail-activity">Master Detail Flow Template</h3>
    204 
    205 <table>
    206   <tr>
    207     <th width="350px">Example</th>
    208 
    209     <th>Description</th>
    210   </tr>
    211 
    212   <tr>
    213     <td><img src="{@docRoot}images/code_templates/master-detail-flow.png" alt=""/>
    214     </td>
    215 
    216     <td><p>This template creates an adaptive layout for a set of items and associated details. On a
    217       tablet device, the item list and item details are displayed on the same screen. On a smaller
    218       device, the list and details are displayed on separate screens.</p>
    219 
    220       <p class="note">
    221         <strong>Note:</strong> This template follows the recommendations of the
    222         <a href="{@docRoot}training/multiscreen/index.html">Designing for Multiple Screens</a>
    223         Android training.
    224       </p>
    225 
    226       <p>This template includes:</p>
    227 
    228       <ul>
    229         <li>Adaptive layout using
    230           <a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources"
    231           >alternative resource</a> XML files</li>
    232         <li>{@link android.support.v4.app.FragmentActivity}, {@link android.app.Fragment} and
    233           {@link android.support.v4.app.ListFragment} implementations</li>
    234       </ul></td>
    235   </tr>
    236 </table>
    237 
    238 
    239 <h2 id="activity-templates">Activity Templates</h2>
    240 
    241 <p>Android activity templates provide options to add new activities to your existing
    242   application.</p>
    243 
    244 <p>To use Android activity templates:</p>
    245 
    246 <ol>
    247   <li>Right click the project folder of the Android application where you want to add an
    248     activity.</li>
    249   <li>Select <strong>New &gt; Other...</strong></li>
    250   <li>Select <strong>Android &gt; Android Activity</strong>, and click <strong>Next</strong>.</li>
    251   <li>Select an activity template, then follow the instructions to add it to your existing
    252     application.
    253     <ul>
    254       <li><a href="#login-activity">LoginActivity</a></li>
    255       <li><a href="#settings-activity">SettingsActivity</a></li>
    256       <li><a href="#blank-activity">BlankActivity</a></li>
    257       <li><a href="#full-screen-activity">FullScreenActivity</a></li>
    258       <li><a href="#master-detail-activity">MasterDetailFlow</a></li>
    259     </ul>
    260   </li>
    261 </ol>
    262 
    263 <p>These templates create the same type of activity as they do when used as an application template,
    264 however the following templates create activities which are specifically intended to be used as part
    265 of an existing application.</p>
    266 
    267 
    268 <h3 id="login-activity">Login Activity Template</h3>
    269 
    270 <table>
    271   <tr>
    272     <th width="206px">Example</th>
    273 
    274     <th>Description</th>
    275   </tr>
    276 
    277   <tr>
    278     <td><img src="{@docRoot}images/code_templates/login-activity.png" alt="" />
    279     </td>
    280 
    281     <td><p>This activity template provides input fields and a sample implementation of
    282       an {@link android.os.AsyncTask} that asks users to login or register with their credentials.</p>
    283 
    284       <p>This template includes:</p>
    285 
    286       <ul>
    287         <li>Recommended user interface for requesting login information</li>
    288         <li>{@link android.os.AsyncTask} implementation for handing network operations separately
    289           from the main user interface thread</li>
    290         <li>Progress indicator during network operations</li>
    291       </ul>
    292     </td>
    293   </tr>
    294 </table>
    295 
    296 
    297 <h3 id="settings-activity">Settings Activity Template</h3>
    298 
    299 <table>
    300   <tr>
    301     <th width="206px">Example</th>
    302 
    303     <th>Description</th>
    304   </tr>
    305 
    306   <tr>
    307     <td><img src="{@docRoot}images/code_templates/settings-activity.png" alt="" />
    308     </td>
    309 
    310     <td><p>This template extends the {@link android.preference.PreferenceActivity} class and uses an
    311       XML file to create preference settings. This template also demonstrates how to implement
    312       several data types for settings.</p>
    313 
    314       <p>This template includes:</p>
    315 
    316       <ul>
    317         <li>Activity extending {@link android.preference.PreferenceActivity}</li>
    318         <li>Preference values defined using XML files added to the {@code res/xml/} directory of
    319           your project.</li>
    320       </ul>
    321     </td>
    322   </tr>
    323 </table>
    324 
    325 
    326 <h2 id="object-templates">Other Templates</h2>
    327 
    328 <p>Android object templates provide options to add new components to your existing application,
    329 including the previously mentioned activities as well as the following additional items:</p>
    330 
    331 <p>To use Android object templates:</p>
    332 
    333 <ol>
    334   <li>Right click the project folder of the Android application where you want to add a code
    335     component.</li>
    336   <li>Select <strong>New &gt; Other...</strong></li>
    337   <li>Select <strong>Android &gt; Android Object</strong>, and click <strong>Next</strong>.</li>
    338   <li>Select an object template, then follow the instructions to add it to your existing
    339     application.
    340     <ul>
    341       <li>{@link android.content.BroadcastReceiver}</li>
    342       <li>{@link android.content.ContentProvider}</li>
    343       <li><a href="{@docRoot}guide/topics/ui/custom-components.html">Custom View</a></li>
    344       <li>{@link android.app.Service}</li>
    345     </ul>
    346   </li>
    347 </ol>
    348