2012年2月29日水曜日

メモ帳アプリ Version 3.0

バーション3に更新しました。

https://market.android.com/details?id=com.blogspot.yazakikenji.mpmemo

画面の大きさとIMEによっては、編集画面が押しつぶされてしまっていたので、矢印ボタンを廃止し、既存のボタンのみで小さくしました。

たぶんこれで打ち止めかな。あとは要望あればなるべく対応します。

2012年2月25日土曜日

メモ帳アプリ Version 2.0

バーション2に更新しました。
https://market.android.com/details?id=com.blogspot.yazakikenji.mpmemo

変更点は、矢印ボタンと削除ボタンを画面上に表示。

矢印ボタンは、一部の語句を選択したい時のカーソル微調整で使えるかな。

いろいろ考えたんですが、シンプルな形に落ち着きました。

2012年2月23日木曜日

Activityのライフサイクルをトーストで実感

Activityのライフサイクルを理解するのは重要ですが、なかなか文章だと実感できないので自分のアプリで試してみました。

通常はログに出るようにするんでしょうが、スマホの画面とPC画面を行ったり来たりより、スマホ画面にトーストで表示させた方が、実感しやすかったです。

これ以来、なんでもトーストで出してしまう^^;

int num=hoge;
String str=valueOf(num);
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();


(追記)フラグメント内でのトースト表示
Toast.makeText(getActivity(), "テスト", Toast.LENGTH_LONG).show();

2012年2月19日日曜日

メモ帳アプリを公開!

メモ帳アプリを公開しました。

MpMemo という名前です。

https://market.android.com/details?id=com.blogspot.yazakikenji.mpmemo


これは個人的に欲しかったので作ったものです。

自分の使ってる端末が、タブレット型でSIM入りません。
ネット接続はWifi のみ。
契約もしてないので、ネット繋がる場所が限定されています。
なので、オフライン環境でちょっと保存しときたいのがあった時に、それをまとめておいて、最終的にはオンライン環境になった時に、メール送信とかしてPCに送って、あとはPCで見れればいいという感じです。

まさに自分自身が、毎日使っているという。


※追記
メモといえば、エバーノート(Evernote)!
アカウントとるのを横着して、使ってなかったんですが、、作りました。
思った以上に便利で、有名なの納得!
ぶっちゃけメインのメモはEvernoteで決まりですね。
じゃあ、MpMemoの価値は??
①twitter とかで複数のつぶやきをまとめてノートに入れたい場合。(そのままEvernoteだと別々のメモになってしまう。ある種のクリップボード的な使い方。)
②メール送信したい場合
③ログイン~クラウド~なアプリが何らかの理由でダメな場合
④Evernoteに上げるまでもない(上げたくない)場合
こんなとこでしょうか?
(ちなみにメール登録数は2つだけなんですが、増やしてほしい人いたらコメント下さい。10個くらいまでなら問題なく増やせるかと。)
あと、、やっぱりメモ帳なんてメーケットに大量にありますから、、見つけてもらうのも大変。



・マーケットへの反映について

マーケットに公開してから表示されるまでの時間について。
だいたい一時間くらいかかったと思います。
チェックするようになってきたんでしょうか?

追記)
2012/02/03 付けでこんな記事が出てました。

『マルウエアスキャン機能「Bouncer」をAndroid Marketに導入』
http://itpro.nikkeibp.co.jp/article/NEWS/20120203/380062/

時間かかるのがこれ原因とは断定できませんが、チェックはするようになったみたいですね。

2012年2月18日土曜日

ボタン クリックイベントをXMLに定義する方法

①XML で、Button ウィジェットなどのOn click 欄にメソッド名を書く。(※ここでは、hoge とする)

②public でView を引数にしてメソッド定義。(※ボタン2つ、XMLで定義しているId:<button1><button2>として、それぞれのId で分岐可能)
public void hoge(View view) {
     if(findViewById(R.id.button1)==view){
      ((Button) view).setText("押したよ~1");
     }else if(findViewById(R.id.button2)==view){
      ((TextView) view).setText("押したよ~2");
     }
 }

試してみたら、キャストするのButton でもTextView でも、ボタンの文字が押したよ~に変わってくれた。この辺はよく分からん。
ボタンごとに定義するメソッド名を変えて、Javaでそれぞれ書いた方が分かりやすいかも?


追記)
上記の書き方だと、どうもバグ?みたいな現象がありました。
また、ボタン1つに1つのメソッドをそれぞれ定義した方が分かりやすいと思いました。

2012年2月17日金曜日

Android の設定画面はPreferenceActivity !

アンドロイドでよくある設定画面。
どうやって作るのか?

最初、レイアウトで独自に作ったり、
リストビュー(ListView) を使うのかと思ったりして遠回りしましたが、
正解は、PreferenceActivity を使うことです。

XML (レイアウトのとは別) へ定義するだけで、自動的に設定画面風に表示され、かつ、自動的にプリファレンスに保存までしてくれます!

個人的に、超感動!

やり方は、ググれば出てきますが、読んでるだけじゃイマイチ分からないかも?
実際にやってみて、理解できました。
ここでも後日、解説を書こうと思います。

書きました↓

追記)やり方

①プリジェクト右クリック→New→Android XML File →Resource Type でPreference を選び、ファイル名はご自由に。
②(勝手に出てくる場合もありますが)Preference.XMLのファイルを右クリック→Open With →Android Xml Resources Editor を選択するとGUIの画面になります。
③Add... ボタンをクリックして設定したい要素を選択します。
※TOPに置くのか、配下に置くのか、ラジオボタンの選択が出る場合もありますが、あまり気にしなてくていいと思います。
あとはドンドン追加して設定していくだけ。

☆ 設定出来る要素の種類
CheckBoxPreference
チェックボックスが設定できます。
最低限、必要だろう指定は、
・Key :プリフェランスに保存してくれる時に設定するKey (呼び出す時、分かるように。)
・Title  :(チェックボックスに)表示する文字列
の2つだけかな。
Summary on/off でチェックボックスにチェック入った時とそうでない時のメッセージを指定できる。(コードに書かなくていいので簡単!)
最初からチェック入れておきたい時は、Default value にtrue と直接記述する。

EditTextPreference
文字編集、保存できます。
最低限必要な指定は、上のCheckBoxPreference と同じ。

ListPreference
ラジオボタン付きのリストが表示される。(選択できるのは1つだけ)
最低限必要な実装は、
・Entries  :画面上のリストに表示する文字列
・Entry values :そのリストの各要素が、実際に保持している値
これらは、values でstring型のarrayリストとして設定します。
(ちなみにint型のarrayリストをEntry values の方に設定したら見事エラー^^; String型しか対応してない?)
あとは同上。
デフォルトで選択させておきたい場合は、やはりDefault value にvalues に設定した値を書きます。

Preference
特に機能のない項目が作れます。
もちろん機能ないといっても、Java側で、この項目をクリックしたら~するとか、そういうのは好きなように実装できます。

PreferenceCategory
設定画面の中の、サブタイトル的な表示になります。
Title に文字列指定するくらい?

PreferenceScreen
この設定画面の大元。タイトルバーにバッチリ表示されます。
これも基本的には、Title に文字列指定するくらいかなと思いますが、
使い方のポイントしては、これ入れ子に出来るんですね。
入れ子にすると、次の画面が簡単に作れます!

RingtonePreference
使ったことないんで、ノーコメント^^;

メモ帳アプリ、作成中。

メモ帳アプリを作成中です。

メジャーなメモ帳アプリとは、ちょっと違った視点からの使い勝手を考えて作ってます。
まあ、自分が欲しい機能をまとめただけなんですが。。(笑)

もちろんマーケットに上げます。
七並べより早くなりそう。。

しかしあれですね、コード書いてると、あっという間に一週間経ちますね。

2012年2月10日金曜日

結果とプロセス

結果と、それに至るまでのプロセスがあるわけですが、
プロセスの段階でいくら努力しました!といっても結果が伴わないと社会では評価されないんですよね。

学生時代は、プロセスの努力を評価してもらえたりしますが、、社会人はそうもいかないのが現実。

できるかできないか、じゃない、やるかやらないかだ!みたいな体育会系のノリは苦手ですが、
ある分野で、それなりにやろうと思ったら、、そりゃやるしかない、ですよ。

理屈という名の言い訳を話している暇があったら、ちゃんとしたプログラムを作るために必死で考えるべき。


※追記
ただし、定期的にリラックスは必要です。

コードが浮かぶ場所3つ
・トイレ
・風呂
・ベッドのなか

2012年2月9日木曜日

Android で日時(日付・時刻)を取得する方法

いくつか使えるクラスがありますが、せっかくAndroid なので、Time クラスを使ってみます。

android.text.format.Time


・java (※メソッドの形で)

String time() {
    Time time=new Time();
     time.setToNow();
     String date=getString(R.string.time,time.year,time.month+1,time.monthDay,time.hour,time.minute,time.second);
     return date;
}

・string.xml
<string name="time">%1$d年%2$d月%3$d日 %4$d時%5$d分%6$d秒</string>

※string.xml を利用しているのは、コードになるべく日本語を入れたくないから。+多言語対応への布石。あと全部%dなのはサボりです(笑)

2012年2月8日水曜日

初めてAndroid マーケットにあげてみました。

Lights Out (ライツアウト) です。
https://market.android.com/details?id=com.blogspot.yazakikenji.panel

古典的な?パズルゲームでしょうか。
Wiki の説明

ライツアウトというゲーム名は、すっかり忘れていたのですが、ゲームのルールというか内容は覚えていて、テスト的に作成したものです。

やってみると、あー懐かしい~ となるかも?



・マーケットへの反映について

公開完了しても、URLを示してくれません。。
仕方ないので自分で検索するのですが、ヒットしない。
調べるとアップしてすぐに反映すると書いてあるのですが。。
反映されてないのか??

最終的に、自分がアップした一覧ページ
https://market.android.com/developer?pub=CloverQ
のURL作成ルールが分かって、アクセスして確認できました!

※最後のCloverQというのが、自分の開発者名です。
これを変更すれば、各自のを確認できます。

やれやれ。。

2012年2月7日火曜日

N50 画面ブラックアウト!

先ほど発生。

ロック画面でフリーズして、スーっとブラックアウト。
電源ボタン押下、長押し、いろいろするも反応なし。

adb devices で見ると認識してる。
reboot してもダメ。

本体側面のRボタンをつついたら起動!

データ無事。今のところ、問題なし。
ちょっと冷や汗でした。。


追記)
どうも特定のアプリを起動したまま、スリープ→ロック画面になった場合、現象発生するっぽい。
それで現象再発しました。
その後、それを避けたら現象再現せず。


追記2)
上で書いた特定のアプリ起動中に操作不能に。
Rボタンも効かず。
充電中だったので外して再度Rボタン。再起動せず。電源ボタン押下で起動。
アイコンがいくつかドロイド君画象になっていたが、ちょっと待ったら復活。
さすがにアプリ削除したわ。。

2012年2月3日金曜日

日本Androidの会

日本Androidの会に入ってみました。

といっても、メーリングリストに参加するだけのものです。


驚いたのは、日々20件程度のメールが飛び交って活発なこと。
また、”教えて君”が多いこと!

まあ勉強になることもあるので良いのですが。。


ここ一週間ほど、いろいろやっているうちに時間が過ぎてしまい、全然コード書いてません(汗
毎日やってたせいか、妙に不安になってしまう。。今日はこれまで。