Tuesday, April 01, 2008

Android, sample3 , Create,open close SQLite DB

Source from:http://code.google.com/android/intro/tutorial-ex1.html



/*
* Copyright (C) 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* 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.google.android.demo.notepad1;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.Menu.Item;
import android.widget.SimpleCursorAdapter;
public class Notepadv1 extends ListActivity {
private int mNoteNumber = 1;
private NotesDbAdapter mDbHelper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
//super.onCreate(icicle);
super.onCreate(icicle);
setContentView(R.layout.notepad_list);
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();
fillData();
}
public static final int INSERT_ID = Menu.FIRST; //Note: In strings.xml resource (under res/values), add a new string for menu_insert with text "Add Item" Add Item, then save the file
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
// return super.onCreateOptionsMenu(menu);
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, R.string.menu_insert);
return result;
}
@Override
public boolean onOptionsItemSelected(Item item) {
// TODO Auto-generated method stub
//return super.onOptionsItemSelected(item);
switch (item.getId()) {
case INSERT_ID:
createNote();
return true;
}
return super.onOptionsItemSelected(item);
}
private void createNote() {
String noteName = "Note " + mNoteNumber++;
mDbHelper.createNote(noteName, "");
fillData();
}
private void fillData() {
// Get all of the notes from the database and create the item list
Cursor c = mDbHelper.fetchAllNotes();
startManagingCursor(c);
String[] from = new String[] { NotesDbAdapter.KEY_TITLE };
int[] to = new int[] { R.id.text1 };
// Now create an array adapter and set it to display using our row
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
setListAdapter(notes);
}
}

----------------------------------------------------------------------------



/*
* Copyright (C) 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* 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.google.android.demo.notepad1;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;

import java.io.FileNotFoundException;

/**
* Simple notes database access helper class. Defines the basic CRUD operations
* for the notepad example, and gives the ability to list all notes as well as
* retrieve or modify a specific note.
*
* This has been improved from the first version of this tutorial through the addition
* of better error handling and also using returning a Cursor instead of using
* a collection of inner classes (which is less scalable and not recommended).
*/
public class NotesDbAdapter {

public static final String KEY_TITLE="title";
public static final String KEY_BODY="body";
public static final String KEY_ROWID="_id";

/**
* Database creation sql statement
*/
private static final String DATABASE_CREATE =
"create table notes (_id integer primary key autoincrement, "
+ "title text not null, body text not null);";

private static final String DATABASE_NAME = "data";
private static final String DATABASE_TABLE = "notes";
private static final int DATABASE_VERSION = 2;

private SQLiteDatabase mDb;
private final Context mCtx;

/**
* Constructor - takes the context to allow the database to be opened/created
* @param ctx the Context within which to work
*/
public NotesDbAdapter(Context ctx) {
this.mCtx = ctx;
}

/**
* Open the notes database. If it cannot be opened, try to create a new instance of
* the database. If it cannot be created, throw an exception to signal the failure
* @return this (self reference, allowing this to be chained in an initialization call)
* @throws SQLException if the database could be neither opened or created
*/
public NotesDbAdapter open() throws SQLException {
try {
mDb = mCtx.openDatabase(DATABASE_NAME, null);
} catch (FileNotFoundException e) {
try {
mDb =
mCtx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0,
null);
mDb.execSQL(DATABASE_CREATE);
} catch (FileNotFoundException e1) {
throw new SQLException("Could not create database");
}
}
return this;
}

public void close() {
mDb.close();
}

/**
* Create a new note using the title and body provided. If the note is successfully created
* return the new rowId for that note, otherwise return a -1 to indicate failure.
* @param title the title of the note
* @param body the body of the note
* @return rowId or -1 if failed
*/
public long createNote(String title, String body) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_TITLE, title);
initialValues.put(KEY_BODY, body);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}

/**
* Delete the note with the given rowId
* @param rowId id of note to delete
* @return true if deleted, false otherwise
*/
public boolean deleteNote(long rowId) {
return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}

/**
* Return a Cursor over the list of all notes in the database
* @return Cursor over all notes
*/
public Cursor fetchAllNotes() {
return mDb.query(DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_TITLE, KEY_BODY}, null, null, null, null, null);
}

/**
* Return a Cursor positioned at the note that matches the given rowId
* @param rowId id of note to retrieve
* @return Cursor positioned to matching note, if found
* @throws SQLException if note could not be found/retrieved
*/
public Cursor fetchNote(long rowId) throws SQLException {
Cursor result = mDb.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_TITLE, KEY_BODY}, KEY_ROWID + "=" + rowId, null, null,
null, null);
if ((result.count() == 0) !result.first()) {
throw new SQLException("No note matching ID: " + rowId);
}
return result;
}

/**
* Update the note using the details provided. The note to be updated is specified using
* the rowId, and it is altered to use the title and body values passed in
* @param rowId id of note to update
* @param title value to set note title to
* @param body value to set note body to
* @return true if the note was successfully updated, false otherwise
*/
public boolean updateNote(long rowId, String title, String body) {
ContentValues args = new ContentValues();
args.put(KEY_TITLE, title);
args.put(KEY_BODY, body);
return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}
}

--------------------------------------------------------------------------------------






--------------------------------------------------------------------------------------









-----------------------------------------------------------------------------------




Notepad v1
No Notes Yet
Add Item

8 comments:

Anonymous said...

елену ебали
началова порно фото
значение секса
seks film
работа секс
бесплатные порноролики без смс
секс бузовой ромы
порно видео фильмы смотреть
скачать видео секс
видеоролики порно скачать бесплатно

Anonymous said...

Хочу увлечь своего ребенка фехтованием. Ему сейчас 6 лет. Кто-нибудь знает хороший ресурс?

Anonymous said...

dr web art-monet ver.1.2 sheilsoft cdview 2 l3 flashcards ubi visual cloning v coolticker basiccolor display quantum image diapovox imageviewer [url=http://bb-soft.co.cc/zmei-mail-sender-v1-03-free-download]Zmei Mail Sender V1.03 free download[/url] planningpme 2003 riftspace creatacard gold fashion dash eshopper deluxe illustrate fineprint winnt wizardbush archangel resco pocket radio wieser quality time [url=http://bb-soft.co.cc/zmei-mail-sender-v1-03-free-download]Zmei Mail Sender V1.03 free download[/url] see4vb 15 slide erudite maya ai implant hot dog memeo autosync iconpro odbc explorer 1vision vserv quik auftrag 2000

Anonymous said...

[url=http://webrusher.com/members/VideoWrap-24/default.aspx]VideoWrap[/url] [url=http://community.freeskier.com/profiles/profile.php?user_id=27781]Light Converter[/url]
Speedy iPod Video Converter 1 DVD Ripper 7.2.1
http://www.solonoilista.altervista.org/bloghoster/?u=videosealwilda5 Any Media To Palm
[url=http://www.adulthostedblogs.com/?u=videoseapril9]Free Video Converter[/url] [url=http://www.answerbag.com/profile/1237566]Color7 Video Convert Premier 8.0.8.25[/url]
3Q Video Converter SoundWax Video Converter
http://www.pinskerdream.com/bloghoster/?u=videoseaileen8 Power 3GP iPod PSP Video Converter 8.0.3.18
Winavi Video Converter 8.0
my icq:858499940385

Anonymous said...

http://pillsrxtabletscheap.net


[url=http://pillsrxtabletscheap.net]www.youtube.com/watch?v=MrHk4Do6Gsw[/url]

Anonymous said...

Do not take in a head!

Anonymous said...

Bravo, your opinion is useful

Anonymous said...

A word to the wise is sufficient.