package com.example.myandroid; import android.app.*; import android.view.*; import android.widget.*; import android.os.*; import android.content.*; import android.content.res.*; import android.graphics.drawable.*; import android.database.*; import android.database.sqlite.*; import android.util.*; import java.util.*; class DatabaseManager extends SQLiteOpenHelper { public final String TAG = "com.example.myandroid.DatabaseManager"; public final String DBNAME = "MyDatabaseName"; public final String DBTABLE = "serverlist"; DatabaseManager(Context context) { // calls the super constructor, requesting the default cursor factory. super(context, "fhs.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS " + DBTABLE + " ( _id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(32), url TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Logs that the database is being upgraded Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); // Kills the table and existing data db.execSQL("DROP TABLE IF EXISTS " + DBTABLE); // Recreates the database with a new version onCreate(db); } } --- and usage: package com.example.myandroid; import android.app.Activity; import android.graphics.*; import android.graphics.drawable.*; import android.view.*; import android.view.LayoutInflater.Factory; import android.view.animation.*; import android.widget.*; import android.widget.AdapterView.OnItemClickListener; import android.os.*; import android.content.*; import android.util.*; import android.database.*; import android.database.sqlite.*; import android.app.AlertDialog.Builder; import android.app.AlertDialog; import android.app.Dialog; import java.io.*; import java.util.*; import org.json.*; import org.apache.http.*; import org.apache.http.client.*; import com.example.myandroid.Connection; public class Settings_EditEntry extends Activity { private final String TAG = "Settings_EditEntry"; private static DatabaseManager dbManager; private static SQLiteDatabase db; private long server_id; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings_editentry); if( dbManager == null ) dbManager = new DatabaseManager(this); if( db == null ) db = dbManager.getWritableDatabase(); Bundle params = getIntent().getExtras(); String action = params.getString("action"); if( action.equals("edit") ) { server_id = params.getLong("server_id"); Cursor cur = db.query(dbManager.DBTABLE, new String[] {"title", "url"}, "_id=?", new String[] {String.valueOf(server_id)}, null, null, null); cur.moveToFirst(); String title = cur.getString(0); String url = cur.getString(1); EditText w_title = (EditText)findViewById(R.id.settings_editentry_title); EditText w_url = (EditText)findViewById(R.id.settings_editentry_url); w_title.setText(title); w_url.setText(url); Button b = (Button)findViewById(R.id.settings_editentry_button_delete); b.setVisibility(View.VISIBLE); cur.close(); } else if( action.equals("new") ) { server_id = 0; } } @Override public void onDestroy() { super.onDestroy(); } private final int CONFIRM_DELETE = 1; protected Dialog onCreateDialog(int id) { switch( id ) { case CONFIRM_DELETE: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("This action cannot be undone. Are you sure you wish to delete this entry?") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { doDelete(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); return alert; default: } return null; } public void createEntry(String title, String url) { ContentValues vals = new ContentValues(); vals.put("title", title); vals.put("url", url); db.insert(dbManager.DBTABLE, null, vals); } public void editEntry(long server_id, String title, String url) { ContentValues vals = new ContentValues(); vals.put("title", title); vals.put("url", url); db.update(dbManager.DBTABLE, vals, "_id=?", new String[] { String.valueOf(server_id) } ); } public void btnSave(View v) { EditText w_title = (EditText)findViewById(R.id.settings_editentry_title); EditText w_url = (EditText)findViewById(R.id.settings_editentry_url); String title = w_title.getText().toString(); String url = w_url.getText().toString(); if( server_id == 0 ) { createEntry(title, url); } else { editEntry(server_id, title, url); } Intent in = new Intent(); in.putExtra("invalid", true); setResult(1, in); finish(); } public void doDelete() { db.delete(dbManager.DBTABLE, "_id=?", new String[] { String.valueOf(server_id) }); Intent in = new Intent(); in.putExtra("invalid", true); setResult(1, in); finish(); } public void btnDelete(View v) { showDialog(CONFIRM_DELETE); } public void btnCancel(View v) { finish(); }