• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2007 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.example.android.notepad;
18 
19 import com.example.android.notepad.NotePad.Notes;
20 
21 import android.app.Activity;
22 import android.content.ContentValues;
23 import android.database.Cursor;
24 import android.net.Uri;
25 import android.os.Bundle;
26 import android.view.View;
27 import android.widget.Button;
28 import android.widget.EditText;
29 
30 /**
31  * An activity that will edit the title of a note. Displays a floating
32  * window with a text field.
33  */
34 public class TitleEditor extends Activity implements View.OnClickListener {
35 
36     /**
37      * This is a special intent action that means "edit the title of a note".
38      */
39     public static final String EDIT_TITLE_ACTION = "com.android.notepad.action.EDIT_TITLE";
40 
41     /**
42      * An array of the columns we are interested in.
43      */
44     private static final String[] PROJECTION = new String[] {
45             NotePad.Notes._ID, // 0
46             NotePad.Notes.TITLE, // 1
47     };
48     /** Index of the title column */
49     private static final int COLUMN_INDEX_TITLE = 1;
50 
51     /**
52      * Cursor which will provide access to the note whose title we are editing.
53      */
54     private Cursor mCursor;
55 
56     /**
57      * The EditText field from our UI. Keep track of this so we can extract the
58      * text when we are finished.
59      */
60     private EditText mText;
61 
62     /**
63      * The content URI to the note that's being edited.
64      */
65     private Uri mUri;
66 
67     @Override
onCreate(Bundle savedInstanceState)68     public void onCreate(Bundle savedInstanceState) {
69         super.onCreate(savedInstanceState);
70 
71         setContentView(R.layout.title_editor);
72 
73         // Get the uri of the note whose title we want to edit
74         mUri = getIntent().getData();
75 
76         // Get a cursor to access the note
77         mCursor = managedQuery(mUri, PROJECTION, null, null, null);
78 
79         // Set up click handlers for the text field and button
80         mText = (EditText) this.findViewById(R.id.title);
81         mText.setOnClickListener(this);
82 
83         Button b = (Button) findViewById(R.id.ok);
84         b.setOnClickListener(this);
85     }
86 
87     @Override
onResume()88     protected void onResume() {
89         super.onResume();
90 
91         // Initialize the text with the title column from the cursor
92         if (mCursor != null) {
93             mCursor.moveToFirst();
94             mText.setText(mCursor.getString(COLUMN_INDEX_TITLE));
95         }
96     }
97 
98     @Override
onPause()99     protected void onPause() {
100         super.onPause();
101 
102         if (mCursor != null) {
103             // Write the title back to the note
104             ContentValues values = new ContentValues();
105             values.put(Notes.TITLE, mText.getText().toString());
106             getContentResolver().update(mUri, values, null, null);
107         }
108     }
109 
onClick(View v)110     public void onClick(View v) {
111         // When the user clicks, just finish this activity.
112         // onPause will be called, and we save our data there.
113         finish();
114     }
115 }
116