2011-03-09 60 views
0

您好我要存儲數據到本地.db在我的android應用程序。顯示從我的數據庫結果到列表活動

我可以通過Toast得到這個工作並顯示數據,但那是一個教程,現在我想讓它顯示數據到列表活動。

我一直在尋找很多職位和視頻,分別做他們兩個,但沒有顯示如何一起做。我到目前爲止這段代碼...

package database.test; 

import android.app.ListActivity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.widget.ListAdapter; 
import android.widget.SimpleCursorAdapter; 

public class DatabaseActivity extends ListActivity { 
    private ListAdapter mAdapter; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     DBAdapter db = new DBAdapter(this); 

     //---get all titles--- 
     db.open(); 
     Cursor c = db.getAllTitles(); 
     if (c.moveToFirst()) 
     { 
      do {   
       DisplayTitle(c); 
      } while (c.moveToNext()); 
     } 
     db.close(); 
    } 
    public void DisplayTitle(Cursor c) 
    { 
     String[] columns = new String[] {c.getString(0)}; 
     int [] names = new int [] {R.id.row_entry}; 

     mAdapter = new SimpleCursorAdapter(this,R.layout.main,c, columns, names); 
     setListAdapter(mAdapter);  
    } 
} 

這...

package database.test; 

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

public class DBAdapter 
{ 
    public static final String KEY_ROWID = "_id"; 
    public static final String KEY_ISBN = "isbn"; 
    public static final String KEY_TITLE = "title"; 
    public static final String KEY_PUBLISHER = "publisher";  
    private static final String TAG = "DBAdapter"; 

    private static final String DATABASE_NAME = "books"; 
    private static final String DATABASE_TABLE = "titles"; 
    private static final int DATABASE_VERSION = 1; 

    private static final String DATABASE_CREATE = 
     "create table titles (_id integer primary key autoincrement, " 
     + "isbn text not null, title text not null, " 
     + "publisher text not null);"; 

    private final Context context; 

    private DatabaseHelper DBHelper; 
    private SQLiteDatabase db; 

    public DBAdapter(Context ctx) 
    { 
     this.context = ctx; 
     DBHelper = new DatabaseHelper(context); 
    } 

    private static class DatabaseHelper extends SQLiteOpenHelper 
    { 
     DatabaseHelper(Context context) 
     { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) 
     { 
      db.execSQL(DATABASE_CREATE); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, 
     int newVersion) 
     { 
      Log.w(TAG, "Upgrading database from version " + oldVersion 
        + " to " 
        + newVersion + ", which will destroy all old data"); 
      db.execSQL("DROP TABLE IF EXISTS titles"); 
      onCreate(db); 
     } 
    }  

    //---opens the database--- 
    public DBAdapter open() throws SQLException 
    { 
     db = DBHelper.getWritableDatabase(); 
     return this; 
    } 

    //---closes the database---  
    public void close() 
    { 
     DBHelper.close(); 
    } 

    //---insert a title into the database--- 
    public long insertTitle(String isbn, String title, String publisher) 
    { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put(KEY_ISBN, isbn); 
     initialValues.put(KEY_TITLE, title); 
     initialValues.put(KEY_PUBLISHER, publisher); 
     return db.insert(DATABASE_TABLE, null, initialValues); 
    } 

    //---deletes a particular title--- 
    public boolean deleteTitle(long rowId) 
    { 
     return db.delete(DATABASE_TABLE, KEY_ROWID + 
       "=" + rowId, null) > 0; 
    } 

    //---retrieves all the titles--- 
    public Cursor getAllTitles() 
    { 
     return db.query(DATABASE_TABLE, new String[] { 
       KEY_ROWID, 
       KEY_ISBN, 
       KEY_TITLE, 
       KEY_PUBLISHER}, 
       null, 
       null, 
       null, 
       null, 
       null); 
    } 

    //---retrieves a particular title--- 
    public Cursor getTitle(long rowId) throws SQLException 
    { 
     Cursor mCursor = 
       db.query(true, DATABASE_TABLE, new String[] { 
         KEY_ROWID, 
         KEY_ISBN, 
         KEY_TITLE, 
         KEY_PUBLISHER 
         }, 
         KEY_ROWID + "=" + rowId, 
         null, 
         null, 
         null, 
         null, 
         null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; 
    } 

    //---updates a title--- 
    public boolean updateTitle(long rowId, String isbn, 
    String title, String publisher) 
    { 
     ContentValues args = new ContentValues(); 
     args.put(KEY_ISBN, isbn); 
     args.put(KEY_TITLE, title); 
     args.put(KEY_PUBLISHER, publisher); 
     return db.update(DATABASE_TABLE, args, 
         KEY_ROWID + "=" + rowId, null) > 0; 
    } 
} 

我希望得到這個工作,然後向其他人,因爲我創造了一個應用程序uni項目。

感謝所有幫助

回答