使用来自SQLiteOpenHelper
我已经写某事obout这在我的博客www.xenonite.net
public class myDatabase extends SQLiteOpenHelper
{
private static final String DB_NAME = "database.db";
private static final int DB_VERSION = 1;
public MyDatabase(Context context)
{
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE tbl_test (id INTEGER PRIMARY KEY AUTOINCREMENT, test TEXT NOT NULL)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS tbl_test");
onCreate(db);
}
}
你可以在每次调用使用像
myDatabase db = new myDatabase(getApplicationContext());
sql = "INSERT INTO tbl_test (test) VALUES ('xyz')";
db.getWritableDatabase().execSQL(sql);
String sql = "SELECT id FROM tbl_test";
Cursor result = db.getWritableDatabase().rawQuery(sql, null);
int value;
while(result.moveToNext())
{
value = result.getInt(0);
}
派生的类到db,myDatabase.onCreate()被调用,所以你的数据库将在第一次运行时被创建。当更改表结构时,实现onUpgrade()并增加DB_VERSION
嗨,感谢您花时间回答这个问题。每个事实都有一个源代码。所以我想到了一个2列表(3列包括id)。我希望跟踪该ID,以便下次用户访问该应用程序时,它会显示下一个事实,即从停止的位置开始,而不是第一个事实。我想我可以做一个二维数组,并跟踪偏好设置中的索引号。不知道什么是最好的设计解决方案。希望我的回答有道理。 – OceanBlue 2010-06-22 00:36:19
我同意LeonixSolutions。你在某个地方有你的事实。如果它已经是一个文本格式(csv,xml,不管),那么你可以把这个文件放在res/raw目录下,当你的应用程序被安装直接使用或者填充你的数据库时它就可以使用。 – 2010-06-22 01:44:42
太棒了!谢谢。 – OceanBlue 2010-06-22 23:15:34