2010-07-20 324 views
3

斐伊川大家,SQLite数据库中的Android

我在Android的小白和需要一些帮助......

我正在开发要求我写一个SQLiteDatabase的一个活动,并从访问它的应用程序另一项活动。我正面临执行此问题的一个问题。关于我们如何跨多个活动共享数据库的任何建议/想法......?

回答

3

我建议你使用SQLiteOpenHelper类。

只需在您的活动中一致地使用相同的数据库名称,就不会引起任何问题。

SQLiteOpenHelper helper = new SQLiteOpenHelper(
    context, R.string.db_name, null, 1); 
SQLiteDatabase db = helper.getWritableDatabase(); 
+0

你能更多地讨论如何去落实上述声明?我面临困难。 – Anirudh 2012-03-13 10:26:24

+0

开个新问题怎么办?距离我的回复已经两年了:) – SirDarius 2012-03-13 17:00:36

0

访问同一个数据库中的两个不同的活动的问题,可以在几个不同的方式来处理。

最简单的,应该为你的情况工作,是创建一个新的类,扩展SQLITEOpenHelper并从两个活动实例化该类。

Android在多个活动或进程同时访问SQl​​ite数据库时没有问题。

0

只需制作一个通用的DataBase类并通过创建对象来使用它。

public class DbOperation extends SQLiteOpenHelper{ 
public static final String name="mydb.db"; 
public static final String MainTab="MainTab"; 
public static final String ID="_ID"; 
public static final String LevelName="LevelName"; 
int version =2; 

public DbOperation(Context context, String name, CursorFactory factory, 
     int version) { 
    super(context, name,null, version); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
String str="CREATE TABLE "+MainTab+"("+ID+" integer primary key autoincrement,"+LevelName+" text not null unique key)";  

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 

}

使用的任何活动这一数据库在下面的方式

DbOperation ob=new DbOperation(); 
SQLiteDatabase db=new SQLiteaDatabase(); 
db=ob.getWritableDataBase(); 

and now you can use operation like query,delete,update 

Cursor cur=db.query(Table_name,null,null,null,null); etc