Home | History | Annotate | Download | only in notepad
      1 page.title=Notepad Tutorial
      2 @jd:body
      3 
      4 
      5 <p>This tutorial on writing a notepad application gives you a &quot;hands-on&quot; introduction
      6 to the Android framework and the  tools you use to build  applications on it.
      7 Starting from a preconfigured project file, it guides you through the process of
      8 developing a simple notepad application and provides concrete examples of how to
      9 set up the project,  develop the application logic and user interface, and then
     10 compile and run the application. </p>
     11 
     12 <p>The tutorial presents the application development as a set of 
     13 exercises (see below), each consisting of several steps. You should follow 
     14 the steps in each exercise to gradually build and refine your  
     15 application. The exercises explain each step in detail and provide all the 
     16 sample code you need to complete the application. </p>
     17 
     18 <p>When you are finished with the tutorial, you will have created a functioning
     19 Android application and will have learned many of the most important
     20 concepts in Android development. If you want to add more complex features to
     21 your application, you can examine the code in an alternative implementation
     22 of a Note Pad application, in the 
     23 <a href="{@docRoot}resources/samples/index.html">Sample Code</a> section. </p>
     24 
     25 
     26 <a name="who"></a>
     27 <h2>Who Should Use this Tutorial</h2>
     28 
     29 <p>This tutorial is designed for  experienced developers, especially those with 
     30 knowledge of the Java programming language. If you haven't written Java
     31 applications before, you can still use the tutorial, but you might need to work
     32 at a slower pace. </p>
     33 
     34 <p>Also note that this tutorial uses
     35 the Eclipse development environment, with the Android plugin installed. If you
     36 are not using Eclipse, you can  follow  the exercises and build the application,
     37 but you will need to determine how to accomplish the Eclipse-specific
     38 steps in your environment. </p>
     39 
     40 <a name="preparing"></a>
     41 <h2>Preparing for the Exercises</h2>
     42 
     43 <p>The tutorial  assumes that you have some familiarity with basic Android
     44 application concepts and terminology. If you are not, you
     45 should read <a href="{@docRoot}guide/topics/fundamentals.html">Application 
     46 Fundamentals</a> before continuing. </p>
     47 
     48 <p>This tutorial also builds on the introductory information provided in the 
     49 <a href="{@docRoot}resources/tutorials/hello-world.html">Hello World</a>
     50 tutorial, which explains how to set up your Eclipse environment
     51 for building Android applications. We recommend you complete the Hello World
     52 tutorial before starting this one.</p>
     53 
     54 <p>To prepare for this lesson:</p>
     55 
     56 <ol>
     57   <li>Download the <a href="codelab/NotepadCodeLab.zip">project
     58       exercises archive (.zip)</a>.</li>
     59   <li>Unpack the archive file to a suitable location on your machine.</li>
     60   <li>Open the <code>NotepadCodeLab</code> folder.</li>
     61 </ol>
     62 
     63 <p>Inside the <code>NotepadCodeLab</code> folder, you should see six project
     64 files: <code>Notepadv1</code>,
     65     <code>Notepadv2</code>, <code>Notepadv3</code>,
     66     <code>Notepadv1Solution</code>, <code>Notepadv2Solution</code>
     67     and <code>Notepadv3Solution</code>. The <code>Notepadv#</code> projects are
     68 the starting points for each of the exercises, while the
     69 <code>Notepadv#Solution</code> projects are the exercise
     70     solutions. If you are having trouble with a particular exercise, you
     71     can compare your current work against the exercise solution.</p>
     72 
     73 <a name="exercises"></a>
     74 <h2> Exercises</h2>
     75 
     76   <p>The table below lists the tutorial exercises and describes the development
     77 areas that each covers. Each exercise assumes that you have completed any
     78 previous exercises.</p>
     79 
     80   <table border="0" style="padding:4px;spacing:2px;" summary="This
     81 table lists the
     82 tutorial examples and describes what each covers. ">
     83     <tr>
     84       <th width="120"><a href="{@docRoot}resources/tutorials/notepad/notepad-ex1.html">Exercise
     85 1</a></th>
     86       <td>Start here. Construct a simple notes list that lets the user add new notes but not
     87 edit them. Demonstrates the basics of <code>ListActivity</code> and creating
     88 and handling
     89       menu options. Uses a SQLite database to store the notes.</td>
     90     </tr>
     91     <tr>
     92       <th><a href="{@docRoot}resources/tutorials/notepad/notepad-ex2.html">Exercise 2</a></th>
     93       <td>Add a second Activity to the
     94 application. Demonstrates constructing a
     95 new Activity, adding it to the Android manifest, passing data between the
     96 activities, and using more advanced screen layout. Also shows how to
     97 invoke another Activity to return a result, using
     98 <code>startActivityForResult()</code>.</td>
     99     </tr>
    100     <tr>
    101       <th><a href="{@docRoot}resources/tutorials/notepad/notepad-ex3.html">Exercise 3</a></th>
    102       <td>Add handling of life-cycle events to
    103 the application, to let it
    104 maintain application state across the life cycle. </td>
    105     </tr>
    106     <tr>
    107     <th><a href="{@docRoot}resources/tutorials/notepad/notepad-extra-credit.html">Extra
    108 Credit</a></th>
    109     <td>Demonstrates how to use the Eclipse
    110 debugger and how you can use it to
    111 view life-cycle events as they are generated. This section is optional but
    112 highly recommended.</td>
    113     </tr>
    114 </table>
    115 
    116 
    117 <a name="other"></a>
    118 <h2>Other Resources and Further Learning</h2>
    119 <ul>
    120 <li>For a lighter but broader introduction to concepts not covered in the
    121 tutorial,
    122 take a look at <a href="{@docRoot}resources/faq/commontasks.html">Common Android Tasks</a>.</li>
    123 <li>The Android SDK includes a variety of fully functioning sample applications
    124 that make excellent opportunities for further learning. You can find the sample
    125 applications in the <code>samples/</code> directory of your downloaded SDK, or browser them
    126 here, in the <a href="{@docRoot}resources/samples/index.html">Sample Code</a> section.</li>
    127 <li>This tutorial draws from the full Notepad application included in the
    128 <code>samples/</code> directory of the SDK, though it does not match it exactly. 
    129 When you are done with the tutorial,
    130 it is highly recommended that you take a closer look at this version of the Notepad
    131 application, 
    132 as it demonstrates a variety of interesting additions for your application, 
    133 such as:</li>
    134   <ul>
    135     <li>Setting up a custom striped list for the list of notes.</li>
    136     <li>Creating a custom text edit view that overrides the <code>draw()</code>
    137     method to make it look like a lined notepad.</li>
    138     <li>Implementing a full <code>ContentProvider</code> for notes.</li>
    139     <li>Reverting and discarding edits instead of just automatically saving
    140     them.</li>
    141   </ul>
    142 </ul>
    143