恥ずかしげもなく技術ブログ

プログラミング等について書いていきます.

AndroidStudioで予め用意したdbファイルを読み込むとか

Android Studioを導入してみて色々つまづいたところがあったので書き散らします.

パッと思い出せるつまづいた箇所は次の3点です.

①LogCatにLogが出ない

②assetsフォルダの位置がわからん

③予め作ったdbファイルが読み込めない

 

以下,対応.

①LogCatのウィンドウがある下の見出しに「TODO」「Run」「Terminal」とかあると思うけど「Terminal」をクリック

そこで

adb kill-server 

adb start-server 

と打てばしばらく経つとログが流れるはず.注意すべきはLog.vを使った時にeclipseではタグの検索がtag:タグ名でフィルタリングするけど,Android Studioではタグ名だけでフィルタリングできます.

 

②app/src/mainです.つまり,app/src/main/assets.

 

③はじめはmain直下にdbファイルを置いたりして,

これ

xerial / sqlite-jdbc — Bitbucket

とか使ってみたけど上手くいかなかったのでassets直下にdbを置いて

こちらのサイトの通りにやってみれば出来ました.ありがとうございます.

上の方の定数を自分の環境に合わせて書いてみてください.


PCで作ったSQLiteのDBファイルをAndroidで使う | naichilab - Android iOSアプリ開発メモ

これを使ったコードはこんな感じです.

RecordDBHelperってのが上のサイトでいうDBHelperですね.

フラグメントの中で使っているのでcontextを取るところが少し変わっています.

 

RecordDBHelper hlpr = new RecordDBHelper(rootView.getContext());
SQLiteDatabase mydb = hlpr.getWritableDatabase();

// mytbというテーブルから,カラムid,jname,img,archiveを取ってきてそのidを昇順に並べています
Cursor cursor = mydb.query("mytb", new String[] {"id", "jname", "img", "archive"}, null, null, null, null, "id ASC");
while (cursor.moveToNext()){
String jname = cursor.getString(1);
String img_path = cursor.getString(2);
String archive = cursor.getString(3);

}