メモ帳アプリのメモ1
データベース
テーブルの情報を定義したMemoContractClass
データベースの操作をするためのMemoOpenHelperが必要
MemoOpenHelper.java
public class MemoOpenHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "myapp.db";
public static final int DB_VERSION = 1;
public static final String CREATE_TABLE =
"create table memos (" +
"_id integer primary key autoincrement, " +
"title text, " +
"body text, " +
"created datetime default current_timestamp, " +
"updated datetime default current_timestamp)";
public static final String INIT_TABLE =
"insert into memos (title, body) values " +
"('t1', 'b1'), " +
"('t2', 'b2'), " +
"('t3', 'b3')";
public static final String DROP_TABLE =
"drop table if exists " + MemoContract.Memos.TABLE_NAME;
public MemoOpenHelper(Context c){
super(c, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_TABLE);
sqLiteDatabase.execSQL(INIT_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL(DROP_TABLE);
onCreate(sqLiteDatabase);
}
}
非同期でデータを取得する
ListViewにアダプタを設置してデータを表示させていきたいのですが、その際にはCursorLoaderという仕組みを使うことが推奨されています。CursorLoaderを使うとデータベースに対して非同期に処理が投げられるので、データベースに問い合わせをしている間にActivityが固まってしまうことを防ぐことができます。
CursorLoaderはデータベースに直接アクセスできない
ContentProvider は元々アプリ間でデータを共有するための仕組みで、これを使えば他のアプリにデータを公開して使ってもらうことができるようになります。
MemoContentProvider.java
public static final String AUTHORITY =
"com.example.joji.mymemoapp.MemoContentProvider";
public static final Uri CONTENT_URI =
Uri.parse("content://" + AUTHORITY + "/" + MemoContract.Memos.TABLE_NAME);
public static final int MEMOS = 1;
public static final int MEMO_ITEM = 2;
public static final UriMatcher uriMatcher;
static {
uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
uriMatcher.addURI(AUTHORITY, MemoContract.Memos.TABLE_NAME, MEMOS);
uriMatcher.addURI(AUTHORITY, MemoContract.Memos.TABLE_NAME + "/#", MEMO_ITEM);
}
メモの編集や追加もしていくのでFormActivityという画面を追加
Author And Source
この問題について(メモ帳アプリのメモ1), 我々は、より多くの情報をここで見つけました https://qiita.com/joji/items/118452159d54032120f4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .