Adsenseバナー

2010年12月30日木曜日

子Activityからアプリを終了する方法

各画面ごとにActivityを作って問題になったのが、子Activityからアプリを終了するときどうする?ということでした。
Activity#finish()を呼んでも、それを呼び出したActivityしか終了しないので、Backキーと同じことになる。
子Activityから親Activityが簡単に取得できないようで、やり方が見つかりませんでした。

で、どうしたかというと、Activityの呼び出しにActivity#startActivity()ではなく、Activity#startActivityForResult()で子Activityの終了コードを見ることにしました。
子の終了コードが「終了」なら、自分もfinish()する。
さらに、自分に親がいることも考えて、自分の終了コードを「終了」にする。
つまり、以下のようなコード。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_CLOSE) {
        setResult(RESULT_CLOSE);
        finish();
    }
}

これを全部のActivityに仕込んでおけばOK。
これを仕込んだBaseActivityを作ろうかとも思ったけど、TabActivityを継承してるやつとかもあって、そういった拡張Activityごとに用意するのが面倒だったので、とりあえず今回は見送りました。

Activity間を行ったり来たりするときのActivityの呼び方

例えば、「今僕たちに必要な買い物」では買い物リスト画面とカタログ編集画面はそれぞれ別Activityで作っていて、お互いボタンにより行き来が可能です。
つまり、買い物リスト画面(画面A)にはカタログ編集ボタンがあって、それを押せばカタログ編集画面(画面B)に移る。
カタログ編集画面(画面B)には買い物リストボタンがあって、それを押せば買い物リスト画面(画面A)に移る。

そこで、「メニュー→画面A→画面B→画面A→画面B→画面A→…」と、交互に繰り返し画面を切り替えたとき、Backキーを押したらどうなるのが一番自然でしょうか。
「…→画面A→画面B→画面A」の状態で、Backキーを押していくと、次のようになってほしいと僕は思います。

「メニュー←画面B←画面A」

でも、デフォルトのままだと「メニュー←画面A←画面B←…←画面A←画面B←画面A」になります。
これは良くないということで、いろいろ調べて試したところ、次のようにしてIntentにフラグを追加すればいいということがわかった。

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

Intentにフラグを追加することで画面遷移の仕方を制御可能で、上述のような遷移はFLAG_ACTIVITY_REORDER_TO_FRONTで実現できます。
これは、すでに存在するActivityを呼び出したときは、履歴スタックの一番上に持ってくるといった動きをします。
存在しない場合は、新しくActivityを作り、やはり履歴スタックの一番上にセットします。

ネットで検索したとき、この情報があまりなかったので、それほど使われてないのでしょうか?
僕は一番自然だと思うのですが。。。

ListViewで奇数行/偶数行での色分け

「今僕たちに必要な買い物」のListViewは奇数行/偶数行で色を変えています。
毎回そのロジックを入れるのも馬鹿らしいので、それ用のAdapterを作成しています。
以下にコードを載せるので、よろしかったら使ってください。
継承したAdapterクラスを作って、それをListViewにセットすればOKです。
ネーミングセンスが気に入らないときはリファクタリングをどうぞ。

import java.util.List;

import android.content.Context;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;

abstract public class EvenOddArrayAdapter<t> extends ArrayAdapter<t> {

    private int listOddColor;
    private int listEvenColor;
    protected LayoutInflater inflater;

    public EvenOddArrayAdapter(Context context, int textViewResourceId, List<t> objects, int oddColor, int evenColor) {
        super(context, textViewResourceId, objects);
        inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        Resources resources = context.getResources();
        listOddColor = resources.getColor(oddColor);
        listEvenColor = resources.getColor(evenColor);
    }

    public EvenOddArrayAdapter(Context context, List<t> objects, int oddColor, int evenColor) {
        this(context, 0, objects, oddColor, evenColor);
    }

    /**
     * @see android.widget.ArrayAdapter#getView(int, android.view.View,
     *      android.view.ViewGroup)
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView != null) {
            convertView.setBackgroundColor((position & 1) == 1 ? listOddColor : listEvenColor);
        }

        return convertView;
    }
}

注意事項
  1. コンストラクタの引数 oddColorとevenColorはリソースIDです。
  2. getView()ではsuper.getView()を呼び出していないため、行にフォーカスが当たったときなどに表示が変えられないという欠点があります。(うまいやり方がないものか。。。)

Alert Dialogの標準ボタン操作

Alert Dialogは3つのボタンを持っています。

  1. Positive Button(主にOKボタンとして)
  2. Neutral Button(主に…なんだろう?Noボタンがあった場合のキャンセルボタンとか?)
  3. Negative Button(主にNoボタンやキャンセルボタン)

で、これらを使いたいときは、AlertDialog.Builder#set~~Button()を使えばいい。
それはいいんですが、今回、このボタンの有効/無効を制御したかったのに、すんなりできなかったのでメモ。

2010年12月29日水曜日

ListViewで独自の行レイアウトを使ったときのContextMenu表示

Androidでは一覧において、行に対するコンテキストメニュー(ポップアップメニュー)を表示させたい場合、その行を長押し(Long Click)する方法が標準的です。

で、プログラミングではどうやるのかは、ネットで探せば親切なサイトがたくさんあって、苦労せず実装できます。
…が、しかし、苦労しないはずが、なぜか苦労してしまったので、ハマったところのメモ。

タブ表示を独自のものにする

「今僕たちに必要な買い物」のカタログ編集画面では、左の画像のように、カテゴリごとにタブを分けて表示しています。
このタブ表示は独自に定義したレイアウトで行っていますが、その方法がなかなかネット上で見つからなかったので、ここに記録。
タブ表示はTabActivityを使うのが一般的のようです。
その方法は検索したらいっぱい出てきました。
が、しかし、それらのサンプルは「タブの背景画像が標準のまま」であって、文字列やアイコンは設定できるものの、タブの背景画像を自分の好きな表示に変える方法がなかなか見つからなかった。
デフォルトのままだと、全体の雰囲気と合わないし、表示領域がでかすぎるので、どうしても変えたい。

世の中に出回っているアプリはよく、タブの背景を変えている。
絶対変えられるはずだと、APIリファレンスを見て試したところ、怪しいのがあったので試したら成功。
以下、やり方。

2010年12月26日日曜日

買い物メモアプリ「今僕たちに必要な買い物」をマーケットに公開!

ようやく公開にこぎつけました。
Androidアプリ「今僕たちに必要な買い物(Shopping necessary for us now)」です。


Android スマフォの方は下のリンクからどうぞ!
http://market.android.com/details?id=jp.ymgcsng.shp
買い物メモアプリです。
使い方はこちら

よく買い忘れをするので、簡単に買い物リストを作れるアプリが欲しいなぁと思ったのが作成のきっかけです。
マーケットで検索したところ、いくつかヒットしたので使ってみたのですが、
なんか自分のイメージする使い勝手とずれていて、それなら自分にぴったりのものを自分で作ろうと。

いや、「Okusama」とかすごく良かったんですよ。
デザインもいいし、シンプルで。
でも、人の好みは十人十色なので、全部がマッチするって難しくて。
同じ思いの人もいるかもしれないし、ってことで、初めてのAndroidアプリ、四苦八苦しながら、娘が寝た後に夜なべして作りました。

完成して思うことは、こんなに大変だった割には、出来上がったものはそんなに大層なもんじゃないなぁ(-_-;)
ま、おいおいアップデートしていくということで。

画像作成と英訳がほんとしんどかった。もう人に頼みたい。
(しかし、そのスキルにぴったりの人物が1人だけ知り合いにいるんだけど、ただでやってくれるとは思えない。。。)
あと、プログラミングも細かいところで苦労したことがいくつもあって、そういったノウハウは後でここに記録していこうかと思います。


しかし、さっきマーケットで競合アプリを検索してみたら、ここ数ヶ月ですごい増えましたね。
これなら、自分で作らずに、誰かが作るのを待ったほうがいいんじゃないかと思ってしまいました。
ちゃんと市場リサーチはこまめにしないといけませんね。
一通り触ってみましたが、どれも特徴があって僕のと同じような物は無いようだったので、まあ一安心です。
頑張って競い合えるレベルまで改善していきたい。


が、しかし、次のアプリも作りたい。
次は育児に役立つアプリを考えています。

2010年12月24日金曜日

Help Content - "Shopping necessary for us now"

Thank you for downloading shopping memo application "Shop necessary for us now" this time.
I explain the usage of this application here.


Basic Usage

Let's Control Stock

Let's Customize the Catalog for you

Let's Use Memo

Usage of Widget

Backup/Restore Function

Shopping List Tips

Troubleshooting

Change History

Library used

Please contact the following when there are a point of uncertainty, an opinion, and a demand, etc.
Mail : ymgcsng@gmail.com
Twitter: @ymgcnsg

Change History - "Shopping necessary for us now"

May. 17. 2015 Version 1.3 Release
- Changing the advertising to AdMob. It is displayed only in the catalog edit screen.
- Voice input by the mic button has to use one only the hightest accuracy.
- Bug Fixed.

Mar. 11. 2011 Version 1.2a Release
 - Changing the default position of the place "Nothing" to the tail
 - Adjustment of layout

Feb. 28. 2011 Version 1.2 Release
 - App Widget
 - Backup/Restore
 - Enhanced Memo
 - Group displaying
and so on.

Jan. 14. 2011 Version 1.1b Release
- Bug Fixed
 + The order of the category is not reflected in the Catalog Edit Screen.

Jan. 14. 2011 Version 1.1a Release
- Bug Fixed
 + Crashing when the voice input button in the memo input dialog is pushed.

Jan. 13. 2011 Version 1.1 Release
- Addition of Inputing Memo Function
- Addition of Sorting Function
- Bug Fixed

Dec. 26. 2010 Version 1.0 Release

Shopping List Tips - "Shopping necessary for us now"

1. Confirming and Importing Items whose Stock Amount is a Triangle
Shopping List Screen
The items whose stock amount is a cross are added to the shopping list automatically.
However, sometimes we want to add the items whose stock amount is a triangle.
(For example, when you shop in deep-discount store to which you doesn't go usually so much, when you shop in day of bargain sale of supermarket, When you cannot go shopping for a while...)
This function is suitable at such time.

Push "Triangle Import Button" in the Shopping List Screen.

Import Dialog
The list of the regular stock's name whose stock amount is triangle is displayed.
Select the item names if there are item names that you want to add to the shopping list and push the OK Button.

※This is an experimental function. It is highly possible that I will change it in the future because of its usability.

2. Sharing with Other Application (Mail Client etc.)
Shopping List Screen
If you request someone to buy items in the shopping list, push "Share Button" in the Shopping List Screen to send the content for mail and the chat.

The list of the application that can receive the text data should be displayed.
(It is familiar in Android. )

Select the mail client when you want to send mail and the twitter client when you want to send twitter.

3. Memo (From Version 1.1)
It moved here.


4. Sorting (From Version 1.1)
Shopping List Screen
Push "Sort Setting Tab" in the upper part of the screen when you want to sort the list in item's attribute.
The Sort Setting Screen is displayed.

Sort Setting Screen
There are the attributes that can be sorted by the list.
When you push (1) "Sort Button" of the item to be sorted and push (2) "Close Button" , the list is sorted.

down-arrow : It sorts the list in ascending order by the attribute.
up-arrow:It sorts the list in descending order by the attribute.
bar:It doesn't sort the list in the attribute.

When all buttons are bars, the order is the defaults.


Shopping List Screen
Push "Reload Button" at the top right corner of the screen when you want to arrange the items again on the same condition after editing the item.
Sorting is executed again.

5. Group Displaying (From Version 1.2)
Shopping List Screen
The list can be switched to the group displaying in the tabs on the shopping list screen.
Flat : no group
Categories : group by categories
Places : group by places. The items whose place is blank are in the "Nothing" group.

Let's Customize the Catalog for you. - "Shopping necessary for us now"

Here, I explain the method of editing the category and the catalog.
If you customize the catalog only for you, you can improve usability of this application very much.


1. Editing the Categories
Menu Screen

Select "Edit Categories" at the lower left of the Menu Screen.

Categories Edit Screen

You can edit the categories on this screen.
From left, the buttons are "Category Add Button", "Category Edit Button", "Categories Merge Button" and "Category Delete Button".

(1) When you want to add a category : Push "Category Add Button" in the left end.
When the dialog has been displayed, input information on a new category there and push the OK Button.

(2) When you want to edit a category (change the name or the position) : Turn on the check box of the category that you want to edit, and push the second "Category Edit Button" from the left. Or, display the pop-up menu by long click on the category name. Then, select "Edit".
When the dialog has been displayed, change information on the category there and push the OK Button.
When some categories have been selected,the category whose position is the top in them is edited.

(3) When you want to merge categories : Turn on the check box of the categories that you want to merge, and push the third "Category Merge Button" from the left.
When the dialog has been displayed, input information on the merged category there and push the OK Button.
For example, you uses this button to bring the vegetable, the fruit, and meat together in one "Food" category.

(4) When you want to delete categories : Turn on the check box of the categories that you want to delete, and push "Category Merge Button" in the right end. Or, display the pop-up menu by long click on the category name. Then, select "Delete".
When the dialog has been displayed, confirm information on the category and push the OK Button.
The items included in the categories are deleted, too. Please use "Category Merge Button" when you don't want to delete the items.

2. Editing the Catalog
Menu Screen
Select "Edit Catalog" at the upper right of the Menu Screen.

Catalog Edit Screen
(1) When you want to add a item : Push "Item Add Button".
The Item Register Screen is displayed.

Item Register Screen
Input information on a item that you want to register, then push the OK Button.
The item name is a compulsory input.

The item name corresponds to the voice input, and please try using it.
The recognition rate of it is high, and it is much easier than the hand input.

Catalog Edit Screen
(2) When you want to edit a item : Display the pop-up menu by long click on the item name. Then, select "Edit".
When the Item Edit Screen has been displayed, change information on the item there and push the OK Button. The composition of the screen is the same as the item register screen.

(3) When you want to delete a item:Display the pop-up menu by long click on the item name. Then, select "Delete from Catalog".
When the dialog has been displayed, confirm information on the item and push the OK Button.

Now, you can change the catalog freely.
Try completing your catalog as the usability of this application depends a great deal on the quality of the catalog though it is serious for a moment.

Basic Usage - "Shopping necessary for us now"

Here, I explain the most basic usage.


1. Displaying a Shopping List
Menu Screen
Select "Shopping List" at the upper left of the Menu Screen.

Shopping List Screen
The Shopping List Screen is displayed.
This doesn't display anything at first though it is a list of items that you should buy.

Then, let's add items here.
Push "Catalog Edit Button" in the left end.

2. Specifying the shopping target from the Catalog
Catalog Edit Screen
(1) Select The category from an upper tabs. Tabs can scroll sideways.

(2) Push "Shopping Button" of items that be on the list of the selected category to add the items to the shopping list. The button is colored when it is "ON". The items whose Shopping Button is "ON" are added to the shopping list.

(3) Push "Shopping List Button" when you finish specifying items.(The Back Key is OK, too. )

Shopping List Screen
The specified items have been added to the shopping list.
Now let's go to shop.

3.Checking the Shopping
Shopping List Screen
In the shop, put what you need in the shopping basket while seeing the shopping list.

(1) Push "Check Button" of the items when putting it in the shopping basket. The button is colored when it is "ON".

(2) Push "Shopping Complete Button" when you finish paying at the cash register. The items whose Check Button is "ON" are deleted from the shopping list, and the shopping of the items ends.

You forgot to buy the items or they are not in the shop when the items still remain on the shopping list.

Let's Control Stock - "Shopping necessary for us now"

Here, I explain the stock control of the regular stock.
If you can be used to the stock control, forgetting purchase will decrease greatly.


Menu Screen

Select "Edit Catalog" at the upper right of the Menu Screen.

Catalog Edit Screen

(1) Push "Regular Stock Button" of items that you always stock in your house. The button is colored when it is "ON".

(2) "Stock Amount Button" is displayed in the items whose Regular Stock Button is "ON".
circle : The item is being stocked enough in your house.
triangle : The stock of the item has decreased. If it is sold cheaply, you may buy it.
cross : There is no stock of the item in your house. It is necessary to buy it at once.

The mark changes in order of a circle, a triangle, a cross, and a circle ... whenever the button is pushed. Let's input how much the present stock amount is.

The items whose Stock Amount Button is a cross are specified for the shopping target automatically.
So, forgetting purchase can be prevented because what you should buy is added to the shopping list by the stock control of the regular stock with the Stock Amount Button.

Shopping List Screen
When the regular stock is on the shopping list, the stock amount is displayed.
I hope you find it informative.

Then, when shopping of the regular stock is completed(it means you turn on the Check Button, and push the Shopping Complete Button), the stock amount is updated to a circle.

I think that you were able to master the main operation of this application at this point.
However, because the item registered in the catalog is an initial data now, this application is not convenient.
Next, let's customize the catalog for you.

2010年12月23日木曜日

ヘルプ目次 - 「今僕たちに必要な買い物」


この度は買い物メモアプリ「今僕たちに必要な買い物」をダウンロードいただきありがとうございます。
ここではアプリの使い方について説明します。


基本的な使い方

在庫管理をしよう

カタログを自分専用にカスタマイズしよう

メモを活用しよう

ウィジェットの使い方

バックアップ/リストア機能

買い物リストTips

トラブルシューティング

変更履歴

使用ライブラリ

不明点やご意見、ご要望などございましたら、下記までご連絡ください。
メール : ymgcsng@gmail.com
ツイッター: @ymgcnsg

在庫管理をしよう - 「今僕たちに必要な買い物」

※注意事項
画像中の言語は英語になっていますが、これは英語版マニュアルと同じ画像を使用しているからです。
言語設定が日本語になっていれば、日本語で表示されます。

ここでは、常備品の在庫管理について説明します。
在庫管理を習慣づけると、買い忘れをずっと減らすことができます。


メニュー画面

メニュー画面の右上「カタログ編集」を選択します。

カタログ編集画面

(1) 常に家に置いておきたい品物の「常備ボタン」をONにします。色が付いている状態がONです。

(2) 常備ボタンがONの品物には「在庫状況ボタン」が表示されます。
○:家に十分な量の予備がある。
△:家に予備があるが少なくなっている。安ければ買ってもいい。
×:家に予備がほとんど、または全くない。すぐに買う必要がある。

ボタンを押すごとにマークが○、△、×、○・・・の順で切り替わります。現在の状況を入力しましょう。

在庫状況が×の品物は、自動的に(かつ強制的に)買い物対象に指定されます。
つまり、常備品については、在庫状況ボタンで在庫管理をすることで、買う必要があるときに買い物リストに反映されるので、買い忘れを防止できます。

買い物リスト画面
買い物リストに常備品が載ると、その在庫状況も表示されます。
買い物の参考にしてください。

なお、常備品について買い物を完了(チェックボタンをONにし、買い物完了ボタンを押すこと)すると、その在庫状況を○(十分在庫がある)に更新します。

ここまでで、このアプリのメイン操作はマスターできたと思います。
しかし今のままでは、カタログに登録されているアイテムが初期データなので、使い勝手がよくありません。
次は、カタログを自分用にカスタマイズしましょう。

カタログを自分専用にカスタマイズしよう - 「今僕たちに必要な買い物」

※注意事項
画像中の言語は英語になっていますが、これは英語版マニュアルと同じ画像を使用しているからです。
言語設定が日本語になっていれば、日本語で表示されます。

ここでは、カテゴリおよびカタログの編集方法について説明します。
カタログを自分専用にカスタマイズすると、とても使いやすくなります。


1.カテゴリの編集
メニュー画面

メニュー画面の左下「カテゴリ編集」を選択します。

カテゴリ編集画面

この画面でカテゴリを編集します。
ボタンは左から順に「カテゴリ追加ボタン」「カテゴリ編集ボタン」「カテゴリ統合ボタン」「カテゴリ削除ボタン」です。

(1) カテゴリを追加したいとき:左端の「カテゴリ追加ボタン」を押してください。
ダイアログが表示されるので、そこに新しいカテゴリの情報を入力してOKボタンを押します。

(2) カテゴリを編集(名前または並び順の変更)したいとき:一覧上で編集したいカテゴリのチェックボックスをONにし、左から2番目の「カテゴリ編集ボタン」を押してください。または、一覧上でカテゴリ名を長押しし、ポップアップメニューから「編集」を選んでください。
ダイアログが表示されるので、そこに変更後の情報を入力してOKボタンを押します。
複数選択していた場合は、選択した中で並び順が一番上のカテゴリの編集画面になります。

(3) カテゴリを統合したいとき:例えば野菜や果物、肉類などを一つの「食品」カテゴリにまとめたい場合は、一覧上で対象のカテゴリのチェックボックスをONにし、左から3番目の「カテゴリ統合ボタン」を押してください。
ダイアログが表示されるので、そこに統合先のカテゴリの情報を入力してOKボタンを押します。

(4) カテゴリを削除したいとき:一覧上で削除したいカテゴリのチェックボックスをONにし、右端の「カテゴリ削除ボタン」を押してください。または、一覧上でカテゴリ名を長押しし、ポップアップメニューから「削除」を選んでください。
ダイアログが表示されるので、削除対象を確認してOKボタンを押します。
削除したカテゴリに含まれる品物も削除されます。品物を削除したくない場合は「カテゴリ統合ボタン」を使用してください。

2.カタログの編集
メニュー画面
メニュー画面の右上「カタログ編集」を選択します。

カタログ編集画面
(1) 品物を追加したいとき:「品物追加ボタン」を押してください。
品物登録画面が表示されます。

品物登録画面
登録したい品物の情報を入力して、OKボタンを押します。
品名は必須入力です。

品名は音声入力にも対応しているので、ぜひ活用してください。
認識率が高く、手入力よりずっと楽です。

カタログ編集画面
(2) 品物を編集したいとき:一覧上で品名を長押しし、ポップアップメニューから「編集」を選んでください。
品物編集画面が表示されるので、変更後の情報を入力してください。画面の構成は品物登録画面と同じです。

(3) 品名を削除したいとき:一覧上で品名を長押しし、ポップアップメニューから「カタログから削除」を選んでください。
確認のダイアログが表示されるので、削除対象を確認してOKボタンを押します。

これで自由にカタログを変更できるようになりました。
カタログを完成させるのはちょっと大変ですが、カタログの出来でアプリの使い勝手が大きく変わってしまうので、ぜひ挑戦してみてください。

買い物リストTips - 「今僕たちに必要な買い物」

※注意事項
画像中の言語は英語になっていますが、これは英語版マニュアルと同じ画像を使用しているからです。
言語設定が日本語になっていれば、日本語で表示されます。

ここでは、買い物リストのちょっとした機能を説明します。

1.在庫状況△の確認と取り込み
2.他のアプリ(メールなど)との共有
3.メモ機能(バージョン1.1から)
4.ソート機能(バージョン1.1から)
5.買い物リストのグルーピング表示(バージョン1.2から)

1.在庫状況△の確認と取り込み
買い物リスト画面
在庫状況が×のものは買い物リストに自動的に登録されます。
しかし、在庫状況が△のものも買い物リストに追加したいときもあります。
(例えば、普段あまり行かない激安店やスーパーの特売日などで、まだ買う必要はないけれど、安ければ買ってもいい状況)
そういうときは、この機能が便利です。

買い物リスト画面で「△取り込みボタン」を押してください。

取り込みダイアログ
常備品で在庫状況が△の品名一覧が表示されます。
買い物リストに加えたい品名があれば、その品名を選択してOKボタンを押してください。

※試験的な機能で、使い勝手の面から将来変更する可能性が高いです。

2.他のアプリ(メールなど)との共有
買い物リスト画面
買い物リストにある品物を他の人に買ってきて欲しいとお願いしたいときなど、その内容をメールやチャットで送りたいときは、買い物リストで「共有ボタン」を押してください。

テキストデータを受け取れるアプリケーションの一覧が表示されるはずです。
(Androidではおなじみですね)

メールを送りたいときはメールクライアントを、ツイッターで送信したいときはツイッタークライアントを選択してください。

3.メモ機能(バージョン1.1から)


4.ソート機能(バージョン1.1から)
買い物リスト画面
一覧をある項目で並び替えたいときは、画面左上部の「ソート設定タブ」を押してください。
ソート設定画面が表示されます。

ソート設定画面
その一覧でソート可能な項目が並んでいます。
ソートしたい項目の(1)「ソートボタン」を押して、(2)「閉じるボタン」を押すと一覧がソートされます。

下三角:その項目で昇順にソートします。
上三角:その項目で降順にソートします。
横棒:その項目ではソートしません。

全てを横棒にすると、デフォルトの並び順になります。

買い物リスト画面
項目を編集したなどして、同じ条件でもう一度並べたいときは、画面右上部の「リロードボタン」を押してください。
再度ソートを実行します。

5.買い物リストのグルーピング表示(バージョン1.2から)
買い物リスト画面
買い物リスト画面のタブで、一覧をグルーピング表示に切り替えることができます。
フラット:グルーピングしません。
カテゴリ:カテゴリごとにグループ化します。
場所:場所ごとにグループ化します。場所が設定されていないものは「無し」に入ります。

変更履歴 - 「今僕たちに必要な買い物」

2015/05/17 バージョン1.3 リリース
・広告をAdMobに変更
・広告はカタログ編集画面にのみ表示するよう変更
・マイクボタンによる音声入力は、最も確度の高い1件のみ使用するよう変更
など

-- ソース紛失で更新停止 --

2012/03/11 バージョン1.2a リリース
・場所の「無し」のデフォルト並び順を最後尾に変更
・レイアウトの微修正


2011/02/28 バージョン1.2 リリース
メモ機能強化
ウィジェット追加
バックアップ機能追加
・買い物リストのグルーピング表示追加
など

2011/01/18 バージョン1.1b リリース
・バグフィックス
 - カテゴリの並び順がカタログ編集画面に反映されない

2011/01/14 バージョン1.1a リリース
・バグフィックス
 - メモ入力ダイアログの音声入力ボタンを押すとクラッシュする

2011/01/13 バージョン1.1 リリース
・メモ機能追加
ソート機能追加
・バグフィックス

2010/12/26 バージョン1.0 リリース

基本的な使い方 - 「今僕たちに必要な買い物」

※注意事項
画像中の言語は英語になっていますが、これは英語版マニュアルと同じ画像を使用しているからです。
言語設定が日本語になっていれば、日本語で表示されます。

ここでは、最も基本的な使い方を説明します。


1.買い物リストの表示
メニュー画面
メニュー画面の左上「買い物リスト」を選択します。

買い物リスト画面
買い物リスト画面が表示されます。
ここに買うべき品物の一覧が表示されますが、最初は何も表示されません。

では、ここに買いたい品物を追加しましょう。
左端の「カタログ編集ボタン」を押してください。

2.カタログから買い物対象を指定
カタログ編集画面
(1) 上部のタブから、カテゴリを選択します。横スクロールが可能です。

(2) 選択したカテゴリの一覧から、買い物リストに追加したい品物の「買い物ボタン」を押してください。色がついている状態がONです。買い物ボタンがONのものが、買い物リストに追加されます。

(3) ひと通り指定が終わったら、「買い物リストボタン」を押してください。(BackキーでもOKです。)

買い物リスト画面
指定したアイテムが買い物リストに追加されています。
さあ、買い物にでかけましょう。

3.買い物のチェック
買い物リスト画面
お店に入ったら、買い物リストを見ながら買い物かごに必要なものを入れていきましょう。

(1) 買い物かごに入れたら、その品物の「チェックボタン」を押しましょう。色がついている状態がONです。

(2) レジで支払いを終えたら、「買い物完了ボタン」を押してください。チェックボタンがONの品物が、買い物リストから削除され、その品物の買い物が終わったことになります。

まだ買い物リストに品物が残っていたら、それは買い忘れか、そのお店ではその品物が置いていなかったということです。

基本的な使い方は以上です。
次は在庫管理について説明します。

とりあえずほぼ完成

機能実装、画像作成、データ作成がすべてとりあえず終わった。
あとはマニュアル作りと、広告を本配信にしてもらう連絡をして、最終チェックをしてマーケットに公開。
クリスマスまでには公開したい。

デバッグ中に、使い勝手がよくない部分とかを見つけたけど、それはおいおい対応していこうと思います。

2010年12月10日金曜日

トラックボール対応

トラックボール操作にも対応させようとして、結構苦労した。
TabとListViewの相性はあんまりよくないらしい。
試行錯誤の結果、だいたい属性の設定で対応し、一部強引にコーディングして、おおむね終了。

テスト中、エラーで強制終了することがあったので、それも修正。
徐々にいいものになっていってると信じたい。

12月上旬がもう終わってしまう。。。
この徹夜生活はいつまで続くのだろう。
働いてたときより働いてる気がするぞ。

2010年12月8日水曜日

ListViewでのContextMenu表示

ListView長押しでコンテキストメニュー(ポップアップメニュー)を表示したくて、いろいろネットで調べた。
ここが一番いい感じにまとまってる気がする。

Show a context menu for long-clicks in an Android ListView

でも、これを参考にしても全然できなくて、なんでだろーとしばらくハマった。
結論として、ListViewの各行のViewにRelativeLayoutを使用していたのだが、それのLong Clickable属性にtrueを設定していなかったため。
サンプルはみんなTextViewばかりで、これはデフォルトでLong Clickableがtrue。でもRelativeLayoutはfalse。
これに気づくのに1時間近く費やしてしまった。。。


進捗はあまり芳しくない。
デバッグしていると、使い勝手が悪いことに気づいて大幅に直すことがしばしば。
Androidプログラミングの勉強もしながらなのでなおさら。
機能は大分固まったけど、あとは画像作成、データ作り(日本語、英語の2通り)、ヘルプ用意(これも2カ国語)、最後のテスト、とてんこ盛り。
今月中には絶対にリリースしたいけど、はてさて。。。

2010年12月2日木曜日

パフォーマンス測定はDebuggable=falseでね

最近体調が良くなかったので、無理せずのんびりやることにしました。
12月上旬に公開できたらいいなぁ。
機能自体はすぐできそうだけど、画像作成に時間がかかる。
絵は外注したいけど、まあ楽しいっちゃ楽しいし、とりあえず全部自作でがんばろう。


先ほどの開発中、くだらないことにハマった。
エミュでも実機でも画面遷移に時間がかかりすぎてて、
実用に耐えない!どうしよう!
とパフォーマンス計測したり試行錯誤した結果、単にデバッグモードで遅いってだけでした。

AndroidManifest.xmlを編集して試したら快適に動いた。
恥ずかしい。。。
無駄に時間を費やしてしまった。。。