summaryrefslogtreecommitdiff
path: root/tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2009-12-14 16:23:32 -0800
committerYing Wang <wangying@google.com>2009-12-14 16:23:32 -0800
commitdc388c565be0f539ded2bca165fef347dc7a89cc (patch)
treea9799e5db72a0032756d1eb12bf86d999513c5dc /tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java
parenta35897da6fcddec45270324a67614deaaacbde94 (diff)
parent5595acbed8ca1778a61881a00d7baaffecb2a64c (diff)
Merge commit 'goog/eclair-mr2' into play-with-monkey
Conflicts: cmds/monkey/src/com/android/commands/monkey/Monkey.java
Diffstat (limited to 'tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java')
-rwxr-xr-xtutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java148
1 files changed, 148 insertions, 0 deletions
diff --git a/tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java b/tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java
new file mode 100755
index 000000000..f50f371d8
--- /dev/null
+++ b/tutorials/NotepadCodeLab/Notepadv3/src/com/android/demo/notepad3/Notepadv3.java
@@ -0,0 +1,148 @@
+/*
+ * Copyright (C) 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")savedInstanceState;
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.demo.notepad3;
+
+import android.app.ListActivity;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.view.ContextMenu;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.widget.ListView;
+import android.widget.SimpleCursorAdapter;
+import android.widget.AdapterView.AdapterContextMenuInfo;
+
+public class Notepadv3 extends ListActivity {
+ private static final int ACTIVITY_CREATE=0;
+ private static final int ACTIVITY_EDIT=1;
+
+ private static final int INSERT_ID = Menu.FIRST;
+ private static final int DELETE_ID = Menu.FIRST + 1;
+
+ private NotesDbAdapter mDbHelper;
+ private Cursor mNotesCursor;
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.notes_list);
+ mDbHelper = new NotesDbAdapter(this);
+ mDbHelper.open();
+ fillData();
+ registerForContextMenu(getListView());
+ }
+
+ private void fillData() {
+ // Get all of the rows from the database and create the item list
+ mNotesCursor = mDbHelper.fetchAllNotes();
+ startManagingCursor(mNotesCursor);
+
+ // Create an array to specify the fields we want to display in the list (only TITLE)
+ String[] from = new String[]{NotesDbAdapter.KEY_TITLE};
+
+ // and an array of the fields we want to bind those fields to (in this case just text1)
+ int[] to = new int[]{R.id.text1};
+
+ // Now create a simple cursor adapter and set it to display
+ SimpleCursorAdapter notes =
+ new SimpleCursorAdapter(this, R.layout.notes_row, mNotesCursor, from, to);
+ setListAdapter(notes);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ super.onCreateOptionsMenu(menu);
+ menu.add(0, INSERT_ID, 0, R.string.menu_insert);
+ return true;
+ }
+
+ @Override
+ public boolean onMenuItemSelected(int featureId, MenuItem item) {
+ switch(item.getItemId()) {
+ case INSERT_ID:
+ createNote();
+ return true;
+ }
+
+ return super.onMenuItemSelected(featureId, item);
+ }
+
+ @Override
+ public void onCreateContextMenu(ContextMenu menu, View v,
+ ContextMenuInfo menuInfo) {
+ super.onCreateContextMenu(menu, v, menuInfo);
+ menu.add(0, DELETE_ID, 0, R.string.menu_delete);
+ }
+
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ switch(item.getItemId()) {
+ case DELETE_ID:
+ AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
+ mDbHelper.deleteNote(info.id);
+ fillData();
+ return true;
+ }
+ return super.onContextItemSelected(item);
+ }
+
+ private void createNote() {
+ Intent i = new Intent(this, NoteEdit.class);
+ startActivityForResult(i, ACTIVITY_CREATE);
+ }
+
+ @Override
+ protected void onListItemClick(ListView l, View v, int position, long id) {
+ super.onListItemClick(l, v, position, id);
+ Cursor c = mNotesCursor;
+ c.moveToPosition(position);
+ Intent i = new Intent(this, NoteEdit.class);
+ i.putExtra(NotesDbAdapter.KEY_ROWID, id);
+ i.putExtra(NotesDbAdapter.KEY_TITLE, c.getString(
+ c.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
+ i.putExtra(NotesDbAdapter.KEY_BODY, c.getString(
+ c.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
+ startActivityForResult(i, ACTIVITY_EDIT);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+ super.onActivityResult(requestCode, resultCode, intent);
+ Bundle extras = intent.getExtras();
+ switch(requestCode) {
+ case ACTIVITY_CREATE:
+ String title = extras.getString(NotesDbAdapter.KEY_TITLE);
+ String body = extras.getString(NotesDbAdapter.KEY_BODY);
+ mDbHelper.createNote(title, body);
+ fillData();
+ break;
+ case ACTIVITY_EDIT:
+ Long rowId = extras.getLong(NotesDbAdapter.KEY_ROWID);
+ if (rowId != null) {
+ String editTitle = extras.getString(NotesDbAdapter.KEY_TITLE);
+ String editBody = extras.getString(NotesDbAdapter.KEY_BODY);
+ mDbHelper.updateNote(rowId, editTitle, editBody);
+ }
+ fillData();
+ break;
+ }
+ }
+}