Oh, and I think if you are closing myDBHelper, perhaps that should go
in onDestroy.

On Mar 23, 5:39 pm, "Dan U." <[EMAIL PROTECTED]> wrote:
> Ok, problem solved, and it had nothing to do with startManagingCursor.
> Actually I think that was sort of a byproduct of the problem.
>
> Remove myDBHelper.close() after your fillData() call. That's what
> caused it.
>
> Now for the second problem is your SimpleCursorAdapter. You are
> providing it your layout for TeaTime and the id of your TextView that
> is inside that. Instead, you should be specifying a layout used for
> one row in the list. That means whatever components you have in the
> layout you provide to SimpleCursorAdapter will show up as an item in
> the list. I went ahead and changed it to use some android defaults:
>
>                 int[] to = new int[] { android.R.id.text1 };
>                 ListAdapter test = new SimpleCursorAdapter(this,
> android.R.layout.simple_list_item_1,
>                                 myTeaCursor, from, to);
>
> On Mar 23, 5:21 pm, "Dan U." <[EMAIL PROTECTED]> wrote:
>
> > I have to admit, I don't know cursors that well, so I'm learning a bit
> > here. I really think it has something to do with the call to
> > startManagingCursor(myTeaCursor) that you make. I have gotten to where
> > I get a SQLLiteException due I guess to some query not working.
>
> > I've tried experimenting with some things in the TeaTime activity, so
> > maybe you can try these as well:
>
> > - Override onActivityResult and make a call to fillData()
> > - Make a call to stopManagingCursor(myTeaCursor) in an overridden
> > onFreeze()
>
> > On Mar 23, 4:25 pm, MobileBen <[EMAIL PROTECTED]> wrote:
>
> > > Here it is. Thank you again for your help. I appreciate that. I still
> > > didn't find the solution :(
>
> > > public class TeaDB {
>
> > >     public static final String KEY_NAME="name";
> > >     public static final String KEY_BREWTIME="brewTime";
> > >     public static final String KEY_ROWID="_id";
>
> > >     /**
> > >      * Database creation sql statement
> > >      */
> > >     private static final String DATABASE_CREATE =
> > >         "CREATE TABLE IF NOT EXISTS "+
> > >                 "TeaTable" +
> > >                 " (_id integer primary key autoincrement, name text not 
> > > null,
> > > brewTime integer not null);";
>
> > >     private static final String DATABASE_NAME = "TeaTimeDatabase";
> > >     private static final String DATABASE_TABLE = "TeaTable";
> > >     private static final int DATABASE_VERSION = 2;
>
> > >     private SQLiteDatabase myDb = null;
> > >     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 TeaDB(Context ctx) {
> > >         this.mCtx = ctx;
> > >     }
>
> > >     /**
> > >      * Open the teaTable 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 TeaDB open() throws SQLException {
> > >            try {
> > >             myDb = mCtx.openDatabase(DATABASE_NAME, null);
> > >         } catch (FileNotFoundException e) {
>
> > >             try {
> > >                myDb =  mCtx.createDatabase(DATABASE_NAME,
> > > DATABASE_VERSION, 0,
> > >                         null);
>
> > >                myDb.execSQL(DATABASE_CREATE);
> > >     /*            myDb.execSQL("CREATE TABLE "
> > >                                         + DATABASE_TABLE
> > >                                         + " (Name TEXT, brewTime 
> > > INT(3));");*/
>
> > >             } catch (FileNotFoundException ex1) {
> > >                 throw new SQLException("Could not create database");
> > >             }
> > >     }
> > >         return this;
> > >     }
>
> > >     public void close() {
> > >         myDb.close();
> > >     }
>
> > >     /**
> > >      * Create a new Tea using the name and brewTime provided. If the
> > > Tea is successfully created
> > >      * return the new rowId for that Tea, otherwise return a -1 to
> > > indicate failure.
> > >      * @param name the name of the Tea
> > >      * @param brewTime the brewTime of the Tea
> > >      * @return rowId or -1 if failed
> > >      */
> > >     public long createTea(String name, int brewTime) {
> > >         ContentValues initialValues = new ContentValues();
> > >         initialValues.put(KEY_NAME, name);
> > >         initialValues.put(KEY_BREWTIME, brewTime);
> > >         return myDb.insert(DATABASE_TABLE, null, initialValues);
> > >     }
>
> > >     /**
> > >      * Delete the Tea with the given rowId
> > >      * @param rowId id of Tea to delete
> > >      * @return true if deleted, false otherwise
> > >      */
> > >     public boolean deleteTea(int brewTime) {
> > >         return myDb.delete(DATABASE_TABLE, "brewTime" + "=" +
> > > brewTime, null) > 0;
> > >     }
>
> > >     /**
> > >      * Return a Cursor over the list of all Teas in the database
> > >      * @return Cursor over all Teas
> > >      */
> > >     public Cursor callUpAllTeas() {
> > >         return myDb.query(DATABASE_TABLE, new String[] {
> > >                 KEY_ROWID, KEY_NAME, KEY_BREWTIME}, null, null, null,
> > > null, null);
> > >     }
>
> > >     /**
> > >      * Return a Cursor positioned at the Tea that matches the given
> > > rowId
> > >      * @param rowId id of Tea to retrieve
> > >      * @return Cursor positioned to matching Tea, if found
> > >      * @throws SQLException if Tea could not be found/retrieved
> > >      */
> > >     public Cursor catchUpTea(long rowId) throws SQLException {
> > >         Cursor result = myDb.query(true, DATABASE_TABLE, new String[]
> > > {
> > >                 KEY_ROWID, KEY_NAME, KEY_BREWTIME}, KEY_ROWID + "=" +
> > > rowId, null, null,
> > >                 null, null);
> > >         if ((result.count() == 0) || !result.first()) {
> > >             throw new SQLException("No Tea matching ID: " + rowId);
> > >         }
> > >         return result;
> > >     }
>
> > >     /**
> > >      * Update the Tea using the details provided. The Tea to be
> > > updated is specified using
> > >      * the rowId, and it is altered to use the Name and BrewTime
> > > values passed in
> > >      * @param rowId id of note to update
> > >      * @param name value to set Tea name to
> > >      * @param brewTime value to set Tea brewTime to
> > >      * @return true if the Tea was successfully updated, false
> > > otherwise
> > >      */
> > >     public boolean updateTea(long rowId, String name, int brewTime) {
> > >         ContentValues args = new ContentValues();
> > >         args.put(KEY_NAME, name);
> > >         args.put(KEY_BREWTIME, brewTime);
> > >         return myDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" +
> > > rowId, null) > 0;
> > >     }
>
> > > }
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to