EKEN M001でAndroidアプリ作り2
EKEN M001でAndroidアプリ作り1の続きです。
さて、何が作りたくてAndroid SDKなんぞに手を出してしまったのか?
実は「片手でスケジュール登録できるアプリ」が欲しかったのです。
私にとっては、切実に欲しいアプリの一つです。
私は字をすばやく書くのが大の苦手。
仕事中に電話で打ち合わせの時間、場所を聞いて、それをメモにとることはよくあるんですが・・・
書いたメモを見ると、まるで14万8千光年かなたから届いたような謎のメッセージになってることもしばしば。
話す速度に手が追いつかない。
せっかくtouchやパソコンがあるんだから、もうちょっとスムーズにスケジュールできないか?
しかしtouchにせよ、パソコンにせよ、一般のスケジューラってのは意外に不便。
ちなみに会社では”Groupsession”という無料のソフトをカスタム化したものでスケジュール管理しています。
http://www.gs.sjts.co.jp/v3/index.html
多分ここに頼んで作ってもらったんじゃないかと。
しかし、これで時間と用件、場所を打ち込んでなんてやってると・・・キーボードとマウスでいったりきたり。手で書いたほうがまだましな状況。
とても間に合わない。こりゃだめだ。
なんとか片手ですぐに予定が入るように出来ないか?
よく考えたら、打ち合わせの相手や場所、内容のパターンなんて、結構決まっていたりする。
よく会う相手、よく使う場所だけを事前に登録しておき、予定登録時にはそれらを選べばいいようにすればどうか?
時間も「9時~10時」など、30分~1時間きざみなことが多いので、この単位で登録できればほとんど事足りる。
これくらいの情報を選択するだけのスケジューラだったら片手で済むんじゃないのか?
探してみると、どうもこういうアプリはなさそう。
でもこれくらいなら作れそう。
というわけで、こんなイメージのものがあったらどうかというちょープロトタイプを作ってみました。
まだ未完成です。笑わないでやってください。
アプリ名は”片手でスケジューラ”としておきました。短絡的ぃ~。
時間を選ぶチェックボックスがあって、そこに予定を選ぶプルダウンメニューがあります。
”8:00-9:00”前のチェックをタップして、”予定”を選択するとこうなります。
”予定”は三角印をタップして、一覧から選択できるのですが・・・
ありゃりゃ?真っ白で何も入ってない・・・
でもタップすると文字が浮かんでくるので、どうやら白地に白い文字が書いてあるようです。
なら文字か背景のカラーを変更するだけなのですが・・・その”だけ”がまだ出来ません。
これを必要な数だけコピーして増殖させれば、とりあえず形だけは整います。
時間を8時から17時まで1時間刻みにして、”予定”のプルダウンメニューを2つにして”用件”と”場所”の2つを表示させて見ました。
ありゃ、はみ出した・・・3時間分しか表示されてません。
要するに、レイアウトが悪い。
そこでレイアウト変更について調べてみました。
その結果はこんな感じ。
何とか5つほど表示されてます。
たったこれだけの変更を一日がかりで調べてました。
文字の大きさを変えない限り、これを縮められませんね。でも文字の大きさをかえる”だけ”のことがわからない。
まだまだ出来ないことだらけです。はがゆいですね。
レイアウトさえ出来たらあとは、
・ チェックを入れた時間の10分前にアラートを表示
・ ”用件”、”場所”に現れる項目を登録できるようにする
・ 何せ1日分だけのスケジューラなので1日の終わりにリセットする
(今はアプリ終了でオールリセットされますw)
てのを盛り込めば一応実用アプリとして動作可能。
今はただ並んでるだけのこんなインターフェースですが、まだ改良の余地はありそう。
インターフェース部分ってのは一番頭を使うところですね。特にこの手のアプリでは。
それにしても、たったこれだけのプログラムなのにコードはえらい量になってます。
package net.npaka.onehand_sche;
import android.app.Activity;
import android.os.Bundle;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.Spinner;
public class onehand_sche extends Activity implements View.OnClickListener {
private CheckBox check1;
private CheckBox check2;
private CheckBox check3;
private CheckBox check4;
private CheckBox check5;
private CheckBox check6;
private CheckBox check7;
private CheckBox check8;
private Spinner spn1;
private Spinner spn2;
private Spinner spn3;
private Spinner spn4;
private Spinner spn5;
private Spinner spn6;
private Spinner spn7;
private Spinner spn8;
private Spinner spn11;
private Spinner spn21;
private Spinner spn31;
private Spinner spn41;
private Spinner spn51;
private Spinner spn61;
private Spinner spn71;
private Spinner spn81;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
LinearLayout layout=new LinearLayout(this);
layout.setBackgroundColor(Color.rgb(180, 180, 180));
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
String[] list={"なし","打合わせ","会議","報告","出張"};
String[] list2={"なし","自部署","A会議場","B会議室","C棟","D工場"};
check1=new CheckBox(this);
check1.setText("08:00-09:00 ");
check1.setTextColor(Color.rgb(0,0,0));
check1.setOnClickListener(this);
setLLParams(check1);
layout.addView(check1);
LinearLayout layout1=new LinearLayout(this);
layout1.setBackgroundColor(Color.rgb(180, 180, 180));
layout1.setOrientation(LinearLayout.HORIZONTAL);
layout1.setGravity(Gravity.LEFT);
spn1 = new Spinner(this);
spn1.setPrompt("用件");
ArrayAdapter <CharSequence> adapter1 = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_list_item_1, list);
spn1.setAdapter(adapter1);
setTLParams(spn1);
layout1.addView(spn1);
spn11 = new Spinner(this);
spn11.setPrompt("場所");
ArrayAdapter <CharSequence> adapter11 = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_list_item_1, list2);
spn11.setAdapter(adapter11);
setTLParams(spn11);
layout1.addView(spn11);
layout.addView(layout1);
(・・・このあと、上の青字部分と同様の書式が7つ登場 [省略])
}
private static void setLLParams(View view) {
view.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
}
private static void setTLParams(View view) {
view.setLayoutParams(new LinearLayout.LayoutParams(
160,48));
}
public void onClick(View v) {
}
}
ずいぶんと無駄なコードが多いですね・・・正直ちょっと恥ずかしい。
まだまだ勉強は続きます。
でも最近仕事が忙しくて、なかなか時間を作れませんね。ここまでくるのにすでに2週間以上かかってます。
とりあえず、この状態のものをEKEN M001に持っていきますが・・・これはまた次回。
« EKEN M001でAndroidアプリ作り1 | トップページ | EKEN M001でAndroidアプリ作り3 »
「Android」カテゴリの記事
- 我が家の最近のガジェット事情(2025.01.11)
- 激安パカケー「ZTE Libero Flip」を使ってみてのレビュー(2024.12.26)
- 激安パカケー「ZTE Libero Flip」を購入(2024.12.22)
- 我が家の現在のPC・スマホ事情(2024.11.03)
- 最大45W出力のUSB-C端子を持つUSB‐A × 2 、USB-C × 2、電源4口タップを購入(2024.05.15)
コメント
« EKEN M001でAndroidアプリ作り1 | トップページ | EKEN M001でAndroidアプリ作り3 »
すばらしいですね。
開発がんばってください。
投稿: | 2010年12月30日 (木) 20時05分
こんにちは、??さん。
ありがとうございます。最近はすっかりご無沙汰になってますがまた再開したいですね。
せっかくまともなAndroid端末も手に入れたんで、いいタイミングなんですが・・・結構難しいです、プログラミングって。一度どこかでちゃんと習いたいですね。
投稿: arkouji | 2010年12月30日 (木) 21時17分