2010-07-20 164 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