I'm trying to create a simple database in android, but the database doesn't created and i don't know why. I read many solutions but nothing help.
This is the SQLiteOpenHelper extended class
public class TodoDB extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "todo.db";
public TodoDB(android.content.Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query = "CREATE TABLE "+ TaskSchema.TaskColumns.TABLE_NAME + "(" +
TaskSchema.TaskColumns.ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TaskSchema.TaskColumns.TITLE + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.INFORMATION + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.DATE + " TEXT NOT NULL " +
");";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public void addTask()
{
ContentValues values = new ContentValues();
values.put(TaskSchema.TaskColumns.TITLE, "l");
values.put(TaskSchema.TaskColumns.INFORMATION, "temporal");
values.put(TaskSchema.TaskColumns.DATE,"20-8-16");
this.getWritableDatabase().insert(TaskSchema.TaskColumns.TABLE_NAME,null,values);
}
public String getTask()
{
String args[] = {"l"};
String columns[] = {TaskSchema.TaskColumns.TITLE};
Cursor c = this.getReadableDatabase().query(TaskSchema.TaskColumns.TABLE_NAME,columns, TaskSchema.TaskColumns.TITLE + " LIKE ?",args,null,null,null);
String result = c.getString(c.getColumnIndex(TaskSchema.TaskColumns.TITLE));
return result;
}
}
This is the activity class
public class MainActivity extends AppCompatActivity {
Button addButton;
Button deleteButton;
TodoDB db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton = (Button)findViewById(R.id.addButton);
TodoDB db = new TodoDB(this);
db.addTask();
String test = db.getTask();
Toast.makeText(this, test,Toast.LENGTH_SHORT);
}
}
Pleas help.
Extra information: I used the Android monitor to find the database, but isn't in the virtual device and I ran the app in my cellphone and when I am looking for the database, it doesn't exists. when I try to do a query the app close.