私はアンドロイドで簡単なデータベースを作成しようとしていますが、データベースは作成されず、理由もわかりません。私は多くの解決策を読んだが、何も役に立たなかったAndroidデータベースのSQLiteデータベースが作成されません
これはSQLiteOpenHelper拡張クラスである
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;
}
}
これは
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);
}
}
嘆願を助ける活動クラスです。
追加情報:Androidのモニターを使用してデータベースを検索しましたが、仮想デバイスには存在しませんでした。携帯電話でアプリを実行しました。データベースを探していても存在しません。私がアプリを閉じるクエリをしようとすると。
データベースが作成されていないことをどのように知っていますか? – lelloman
クエリの最後にセミコロン(;)を追加してみます。 クエリが今のようにする必要があります: 文字列のクエリ= "CREATE TABLE "を+ TaskSchema.TaskColumns.TABLE_NAME + "(" + TaskSchema.TaskColumns.ID +" INTEGER PRIMARY KEY AUTOINCREMENT、" + TaskSchema.TaskColumns.TITLE + "TEXT + TaskSchema.TaskColumns.INFORMATION + "TEXT NOT NULL" + TaskSchema.TaskColumns.DATE + "TEXT NOT NULL" + ");"; –
@lelloman私はデータベースを見つけるためにAndroidモニターを使用しましたが、仮想デバイスにはありません。私は携帯電話でアプリケーションを実行しています。データベースを探しているときには存在しません。私がアプリを閉じるクエリをしようとすると。 –