我有一个DataBaseAdapter类,它基本上创建数据库,表和一些方法来操作其中的数据。在Android中的两个活动之间共享数据库
它看起来像这 -
import ...
public class DataBaseAdapter {
DataBaseForApp dataBaseForApp;
//Constructor for DataBaseAdapter
public DataBaseAdapter(Context context) {
}
//insert data
public long insertData(String player_name,int enrollmentno)
{
SQLiteDatabase SQLiteDB=dataBaseForApp.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(dataBaseForApp.NAME,player_name);
contentValues.put(dataBaseForApp.ENROL,enrollmentno);
long id=SQLiteDB.insert(dataBaseForApp.DATABASE_TABLE,null,contentValues);
SQLiteDB.close();
return id;
}
//search for a player name and the square grid size
public boolean search(String player_name, int enrollmentno)
{
SQLiteDatabase SQLiteDB=dataBaseForApp.getWritableDatabase();
String[] columns={dataBaseForApp.NAME,dataBaseForApp.ENROL};
String[] arguments={player_name,Integer.toString(enrollmentno)};
Cursor cursor=SQLiteDB.query(dataBaseForApp.DATABASE_TABLE,columns,null,null,null,null,null);
while(cursor.moveToNext())
{
int index1=cursor.getColumnIndex(dataBaseForApp.NAME);
int index2=cursor.getColumnIndex(dataBaseForApp.ENROL);
String name=cursor.getString(index1);
int gsize=cursor.getInt(index2);
if(name.equals(player_name)&&gsize==enrollmentno)
{
return true;
}
}
SQLiteDB.close();
return false;
}
// main class
static class DataBaseForApp extends SQLiteOpenHelper{
private static final String DATABASE_NAME="SQLiteDB_FOR_APP";
private static final String DATABASE_TABLE="INFO";
private static final int DATABASE_VERSION=1;
private static final String NAME="NAME";
private static final String ENROL="ENROL";
private static final String CREATE_TABLE="CREATE TABLE "+DATABASE_TABLE+"("+NAME+" VARCHAR(100), "+ENROL+" INT)";
private static final String DROP_TABLE="DROP TABLE IF EXISTS "+DATABASE_TABLE;
public DataBaseForApp(Context context) {
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase SQLiteDB) {
try {
SQLiteDB.execSQL(CREATE_TABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase SQLiteDB, int oldVersion, int newVersion) {
try {
SQLiteDB.execSQL(DROP_TABLE);
onCreate(SQLiteDB);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
然后我做这在我的第一个活动 -
DataBaseAdapter dataBaseAdapter=new DataBaseAdapter(ActivityOne.this);
在此之后,数据库已经建立并在DataBaseAdapter的方法可用于我操纵。
到目前为止,它很酷,但是当我想为我的第二个活动获取相同的数据库以从中插入数据时会出现问题。
如果我用这个 -
DataBaseAdapter dataBaseAdapter=new DataBaseAdapter(ActivityTwo.this);
那么,就意味着我将尝试再次创建数据库。
请建议我如何在两个活动之间共享数据库。
在此先感谢!
是的,这是这样的 – kgandroid 2016-10-05 07:21:02