I am trying to create multiple databases at runtime. The user enter the database name and the system must create it.
here is my code
First.Java
public class First extends Activity implements OnClickListener {
Button btnOk;
EditText inputName;
DatabaseHandler db = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.db);
try {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
initVar();
}
catch (Exception e) {
CommonUtils.postException(e, e.getMessage().toString());
}
}
private void initVar() {
try {
btnOk = (Button) findViewById(R.id.btnOk);
inputName = (EditText) findViewById(R.id.dbName);
btnOk.setOnClickListener(this);
}
catch (Exception e) {
CommonUtils.postException(e, e.getMessage().toString());
}
}
public void onClick(View v) {
if (v == btnOk ){
DBConstants.DATABASE_NAME=inputName.getText().toString().trim();
Toast.makeText(getApplicationContext(), DBConstants.DATABASE_NAME, Toast.LENGTH_LONG).show();
db = new DatabaseHandler(getApplicationContext());
db.getmyDb();
if(DatabaseHandler.doesDatabaseExist(getApplication(), inputName.getText().toString().trim())== true ){
Toast.makeText(getApplicationContext(), "DB created", Toast.LENGTH_LONG).show();
db.close();
}else{
Toast.makeText(getApplicationContext(), "DB Not created", Toast.LENGTH_LONG).show();
db.close();
}
}
}
}
DatabaseHandler.java
public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static SQLiteDatabase myDb = null;
public DatabaseHandler(Context context) {
super(context, DBConstants.DATABASE_NAME, null, DATABASE_VERSION);
}
public SQLiteDatabase getmyDb() {
if (myDb == null)
myDb = this.getWritableDatabase();
return myDb;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onCreate(db);
}
public static boolean doesDatabaseExist(ContextWrapper context, String dbName) {
File dbFile=context.getDatabasePath(dbName);
return dbFile.exists();
}
On the press of OK button I need to create a database with the text entered by the user in the EditText
currently this work only once, if the user enters a different text the second time, the database is not created