OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / frameworks / base / docs / html / guide / tutorials / notepad / index.jd
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>