У меня есть класс DataBaseAdapter, который в основном создает базу данных, таблицу и некоторые методы для управления данными в ней.Совместное использование базы данных между двумя действиями в Android
Похоже this-
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 доступны для меня манипуляция.
До сих пор это круто, но проблема возникает, когда я хочу получить одну и ту же базу данных для моей второй активности, чтобы вставить туда данные.
Если я использую this-
DataBaseAdapter dataBaseAdapter=new DataBaseAdapter(ActivityTwo.this);
тогда, это означает, что я пытаюсь создать базу данных еще раз.
Просьба предложить мне, как разделить базу данных между двумя видами деятельности.
Спасибо заранее!
да это так – kgandroid