処理の流れ

Android開発に関するメモランダム

カテゴリー: 家計簿アプリ  閲覧数:438 配信日: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


・あらかじめ決められた値を入れているだけ
・取得した値をデータベースに入れるよう、変更

週間人気ページランキング / 2-16 → 2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新
指定期間人気ページランキング / 1970-1-1 → 2025-2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新