Androidアプリ作成日記

プログラミング初心者が、Androidアプリを作ります

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

家計簿アプリその8、データベース・ソート

今日はデータベースのソートをメインにやります。
その前に、項目に入れたデータを入力していきます。
前にd1,d2,d3とインテントでの変数を取ったので、挿入の行を、
db.execSQL("insert into Date_Table (Koumoku,Utiwake,Kingaku) values ('"+d1+"', '"+d2+"',"+d3+");");
とすればOKです。
するとこんな感じになります。

20110227-2.jpg


多く入力したんで、下が見えなくなりました。これはそのままだと見えないままなので、
スクロールバーをつける必要があります。
メイン画面のxmlのスクロールしたい場所に、

 
を加えればOKです。

次に、これだと「食費」の「牛丼」と「ピザ」がばらばらに記載されているので、これをまとめて記載します。
そのためには、まずデータベースをソートする必要があります。
ソートとは、データを順番どおりにするもので、例えば食事、娯楽、交通費、娯楽、食事、というデータをソートすると、
食事、食事、娯楽、娯楽、交通費、という順番になります。

まず、前にカーソルの設定で、

 Cursor c = db.query("Date_Table",cols,null, null, null, null, null,null); 
こう書きました。この第七引数が、Order by句と呼ばれる、ソートをする時のものです。
ここに、自分で設定したカラム名(データベースの行ごとの項目名)と、
降順(desc)・昇順(asc)のどちらかを""で囲んで入れます。
今回は、"Utiwake desc"、と入力します。さらに、画面に出すときに同じ項目だと項目入力を省く、
という風にするため、ソースを以下のように変更します。

[変更前]
        while (isEof) {
        	text1.append("\n"+c.getString(1)+"\n");
        	text1.append("  "+c.getString(2)+":"+String.valueOf(c.getInt(3))+"円"+"\n");
        	sort=c.getString(1);
            isEof = c.moveToNext();}

[変更後]
String sort = "";
        while (isEof) {
        	if(!(sort.equals(c.getString(1)))){
        	text1.append("\n"+c.getString(1)+"\n");}
        	text1.append("  "+c.getString(2)+":"+String.valueOf(c.getInt(3))+"円"+"\n");
        	sort=c.getString(1);
            isEof = c.moveToNext();}
equals()メソッドは投下を表し、!は否定を表します。
これはなにをやってるかと言うと、まずsortという変数とc.getString(1)(項目名)とを比べます。
最初はsortには空白が入っているので、当然これと今のc.getString(1)は違う値です。 なので、if文の中身が読まれるので、c.getString(1)をtext1に加え、
次の行のc.getString(2)とc.getInt(3)も加えます。ちなみに"\n"は改行を意味します。
その次に、今のc.getString(1)をsortに代入します。
そして、c.moveToNext()でデータベースの次の行にいきます。

で、またif文のところにいき、またsortとc.getString(1)を比べます。
このとき、sortには前のc.getString(1)が入っているので、前と今のc.getString(1)を比べることになります。
例えば項目名が食事、食事、と並んでいたら、sortとgetString(1)は等しくなるので、if文は読まれません。
つまり、項目名はtext1に入れず、内訳と金額だけtext1に入れるようにします。
これを最後まで繰り返すと、こう整理されます。

20110227.jpg

さっきよりはだいぶ見やすくなりました。
説明がすごく長くなってしまいました。。申し訳ないです。
でも、画面はいい感じになってきたんじゃないでしょうか。

なんとか一区切り付いた感じですが、まだまだやることはあります。
・データの更新・削除
・合計の計算
・日付とリンクさせる
・支払方法の設定
などなど。まぁ一つづつやっていきます。


Androidアプリ開発ランキング

  1. 2011/03/03(木) 16:49:05|
  2. 家計簿アプリ
  3. | トラックバック:0
  4. | コメント:0
<<MacBookPro購入! | ホーム | 家計簿アプリその7、データベース・基礎>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://andromaker.blog98.fc2.com/tb.php/46-0f984a50
この記事にトラックバックする(FC2ブログユーザー)


カテゴリ

家計簿アプリ (15)
アプリ作成 (練習) (7)
プログラム用語 (1)
エラー (3)
環境設定 (8)
サイト関連 (3)
雑談 (9)
ニュース (1)
未分類 (2)
書籍紹介 (1)
iPhone (1)

Android書籍

スマートにプログラミング
Android入門編


初歩からわかるAndroid
最新プログラミング


Google Android
プログラミング入門


AndroidアプリUIデザイン
&プログラミング


Android SDK
逆引きハンドブック

月別アーカイブ

最新コメント

最新トラックバック

最新記事

RSSリンクの表示

カウンター

アクセスランキング

アクセスランキング

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。