カテゴリー:
家計簿アプリ
閲覧数:461 配信日:2013-08-02 11:01
概要
1.内訳サーチボタンクリック
2.「データベース」作成
3.「テーブル」「カラム」作成
4.「データ」をテーブルに追加
5.「カーソルリストのデータ」を読み込む
1.内訳サーチボタンクリック
・button2クリック
▼/src/android/style/householdaccount/Item.java
public void onClick(View v) { if (v==button2){ //内訳サーチボタン |
2.「データベース」作成
・SubOpenHelperクラスのインスタンス生成
▼/src/android/style/householdaccount/Item.java
// 正常起動時 try { // クラスのインスタンス化 SubOpenHelper helper = new SubOpenHelper(getApplicationContext(), "test.db3" , 1 ); //コンストラクタのデータを決める。コンテキスト、DBファイル名、バージョン。 |
▼/src/android/style/householdaccount/SubOpenHelper.java
・SubOpenHelperクラスのコンストラクタが呼ばれる
・引数で受け取ったデータベースがなければ作成。あればオープン
3.「テーブル」「カラム」作成
・SubOpenHelperクラスの、onCreateメソッドによって、「テーブル定義」を作成
@Override public void onCreate(SQLiteDatabase db) { |
・データベースが一番最初に作られたとき(コンストラクタに渡されたDBファイル名が存在しない場合)、呼ばれる
・「テーブル」「カラム」生成
4.「データ」をテーブルに追加
▼/src/android/style/householdaccount/Item.java
・「insert」メソッドで、データをテーブルに追加
5.「カーソルリストのデータ」を読み込む
▼/src/android/style/householdaccount/Item.java
・「queryメソッド」で、カーソルリストのデータを読み込む
package android.style.householdaccount; import java.util.Calendar; import android.style.householdaccount.Item; import android.style.householdaccount.R; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.graphics.Canvas; import android.graphics.Color; import android.os.Bundle; import android.text.SpannableString; import android.text.style.UnderlineSpan; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; public class Item extends Activity implements OnClickListener{ //public class Item extends Activity{ private EditText edit1,edit2,edit3; private Button button1,button2,button4; private TextView text_test; private String number; int year,month,day,itemcheck= 0 ,utiwakecheck= 0 ; private TextView dbtest1; public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.item); text_test = (TextView) this .findViewById(R.id.text_test); dbtest1 = (TextView) this .findViewById(R.id.dbtest1); edit1 = (EditText) this .findViewById(R.id.item_edit1); edit2 = (EditText) this .findViewById(R.id.item_edit2); edit3 = (EditText) this .findViewById(R.id.item_edit3); button1=(Button) this .findViewById(R.id.item_button1); //項目サーチボタン button2=(Button) this .findViewById(R.id.item_button2); //内訳サーチボタン button4=(Button) this .findViewById(R.id.item_button4); //記入ボタン SpannableString spannableString = new SpannableString( "現金" ); text_test.setText(number);
Calendar calendar = Calendar.getInstance(); Intent intent1 = getIntent(); year = intent1.getIntExtra( "year" ,calendar.get(Calendar.YEAR)); month = intent1.getIntExtra( "month" ,calendar.get(Calendar.MONTH)); day = intent1.getIntExtra( "day" ,calendar.get(Calendar.DAY_OF_MONTH)); String listitem = intent1.getStringExtra( "listitem" ); String listutiwake = intent1.getStringExtra( "listutiwake" ); edit1.setText(listitem); edit2.setText(listutiwake); //--上の直線-- LinearLayout linear1 = (LinearLayout) findViewById(R.id.Linear01); LinearLayout.LayoutParams liner01 = new LinearLayout.LayoutParams( 480 , 3 ); Maindraw linerA; linerA = new Maindraw( this ); linerA.setLayoutParams(liner01); linear1.addView(linerA); //--上の直線--
button1.setOnClickListener( this ); //項目サーチボタン button2.setOnClickListener( this ); //内訳サーチボタン button4.setOnClickListener( this ); //記入ボタン } public void onClick(View v) { if (v==button2){ //内訳サーチボタン // 正常起動時 try { // クラスのインスタンス化 SubOpenHelper helper = new SubOpenHelper(getApplicationContext(), "test.db3" , 1 ); //コンストラクタのデータを決める。コンテキスト、DBファイル名、バージョン。
// データベースの設定 SQLiteDatabase db; db = helper.getWritableDatabase(); //データベースに書き込めるように設定 // db.execSQL("insert into Date_Table(Koumoku,Utiwake,Kingaku) values ('食事', 'ステーキ',1000);"); db.execSQL( "insert into Date_Table(Item,Utiwake,Kingaku) values ('食事', 'ステーキ',1000);" ); //insertで行に追加 dbtest1.setText( "" ); //dbtest1の初期化
// カーソルの設定 // String[] cols = {"Koumoku","Utiwake","Kingaku"}; String[] cols = { "Item" , "Utiwake" , "Kingaku" }; Cursor c = db.query( "Date_Table" ,cols, null , null , null , null , null , null ); //カーソルのリストを作る。1:テーブル名、2:取得する列名(カラム等)の配列、 //3&4:取得するレコードの条件、5:GROUP BY条件、6:「HAVING」条件、 //7:「ORDER BY」条件、8:「limit」条件 boolean isEof = c.moveToFirst(); //カーソルを先頭に移動 while (isEof) { //while文。カーソルが最後に行くまで繰り返す。 dbtest1.append(c.getString( 0 )); dbtest1.append(c.getString( 1 )); dbtest1.append(String.valueOf(c.getInt( 2 ))); //getString(0)メソッドで、カーソルの一行目を追加。2,3も同じ。 isEof = c.moveToNext();} //次のリストにカーソルを移す。 c.close(); //終わったら閉じる。これがないとエラーとなる。データベースも。 db.close(); }
// 異常終了時 catch (SQLiteException e){ dbtest1.setText( "エラー" ); return ; } } else if (v==button4){ //記入ボタンクリックされたら Intent intent2= new Intent(Item. this ,MainActivity. class ); // edit1~3に入力したデータをgetText()メソッドで取得 // toString()メソッドで文字列に変換 // putExtraメソッドでintent1のdata1~3へ格納 intent2.putExtra( "data1" , edit1.getText().toString()); intent2.putExtra( "data2" , edit2.getText().toString()); intent2.putExtra( "data3" , edit3.getText().toString()); intent2.putExtra( "year" , year); intent2.putExtra( "month" , month); intent2.putExtra( "day" , day); startActivity(intent2); } }
//上の直線、設定 class Maindraw extends View { public Maindraw(Context context) { super (context); } @Override protected void onDraw(Canvas canvas) { super .onDraw(canvas); // 黒で塗る canvas.drawColor(Color.DKGRAY); } } //直線設定終わり
//@Override //public void onClick(View v) { // Intent intent2=new Intent(Item.this,MainActivity.class); // intent2.putExtra("data1", edit1.getText().toString()); // intent2.putExtra("data2", edit2.getText().toString()); // intent2.putExtra("data3", edit3.getText().toString()); // intent2.putExtra("month", month); // intent2.putExtra("day", day); // startActivity(intent2);
//}
} |
Next
・あらかじめ決められた値を入れているだけ
・取得した値をデータベースに入れるよう、変更