Android アプリで家計簿(お小遣い帳)を作ろう。
性格上、どうも、お小遣い帳が無いとお金の管理ができないらしく、いつも月末が苦しいです。。。
思い立ったが吉日ということで、早速トライです。
まずは、データベースだろうということで、Android + データベースで検索すると SQLite が標準装備だったので、SQLite を使います。
具体的には、SQLite にアクセスするためには、SQLiteOpenHelper と SQLiteDatabase を使う。
まずは、SQLiteOpenHelper を継承したクラスにデータベースの基本情報を書き込んで使う。
MyDBAccess.java
package jp.dip.kuronokodoh.dcashbook;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MyDBAccess extends SQLiteOpenHelper {
public MyDBAccess(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(
"create table prise_tbl (" +
"_id integer primary key autoincrement not null, " +
"prise integer, " +
"date_at date " +
")"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}
MainActivity.java
package jp.dip.kuronokodoh.dcashbook;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import jp.dip.kuronokodoh.dcashbook.MyDBAccess;
public class MainActivity extends Activity {
MyDBAccess dbAccess = null;
SQLiteDatabase db = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbAccess = new MyDBAccess(this, "dcb_db", null, 1);
db = dbAccess.getWritableDatabase();
ContentValues val = new ContentValues();
val.put("prise", 777);
val.put("date_at", "2013/08/18");
db.insert("prise_tbl", null, val);
Cursor cursor = null;
cursor = db.query("prise_tbl", new String[] {"prise", "date_at"}, null, null, null, null, null );
try {
while( cursor.moveToNext() ){
Log.e("Debug", cursor.getString(cursor.getColumnIndex("prise")));
Log.e("Debug", cursor.getString(cursor.getColumnIndex("date_at")));
}
} finally {
if(cursor != null) cursor.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
と、とりあえず、こんな感じになりますYo
これで、データの保存と集計はできる感じ。