Android
Androidアプリを作ってると、すぐにActivityが巨大化する。 そこでActivityの責務を小さくしようと思ってControllerになるクラスを分割しようとするけど、Activityに対する依存度が大きくてすっきりした設計で分割できない。 誰かいい方法知りませんかー?
ダイアログのidについて ダイアログを表示したいときは、まずActivity#showDialog(int id)を呼ぶ。 そうすると、Activity#onCreateDialog(int id)が呼ばれる(最初だけ)。 詳しく調べたわけではないけどたぶんActivity毎にAlertDialogのインスタンスをHashM…
動くようになったので、メモ。 準備 まず、SAStrutsでJSONICを動かすための設定などはこちらを見てね。 ≫WebサービスAPI (JSONIC 1.3)web.xmlの該当箇所は、こんな感じで設定。 こうすれば、/app/json/entity.json みたいなURLで動いてくれる。 JSON-WebServ…
AndroidアプリからWebアプリケーションにログインしようと思ってサンプルを探してたら、PostMethodを使えというサンプルを発見。 apacheからhttpcomponents-core-4.1.3-bin.tar.gz に入ってたjarをビルドパスに加えてもPostMethodというクラスを解決できなく…
まず、android.app.Applicationを継承したクラスを作る。 例えば、com.satoshis.hoge.HogeApplicationとする。 package com.satoshis.hoge; import android.app.Application; public class HogeApplication extends Application { } このクラスに、共有した…
ひさしぶりにAndroidアプリをつくろうと思って、EclipseでAndroidのプロジェクトを実行しようとした。すると、FileNotFoundExceptionが発生してなぜか実行できない。 コンソールのエラーメッセージをよくみると、 Unknown command 'crunch' なんてのが出てる…
複数のウィジェットを水平方向に並べて、それをセンタリングしたかったんだけど、なかなか思うようにレイアウトできなくて困った。 できてみれば簡単なんだけど。 // センタリングしたいウィジェットを書く 最初、LinearLayoutの中に入れる個々のウィジェッ…
日常的に頻繁に使ってるアプリをまとめてみる。まずはSNS系から。 ■Google+ 説明不要?Google+を知らない人はググッてくれ。 ■facebook これも説明不要よね? ■foursquare これも説明不要よね? ■Seasmic 主にTwitterクライアントとして使ってる。 便利ツー…
複数のActivityで構成するAndroidアプリを作るってことで、共通の処理をまとめたHogeActivityを作った。そのなかで、dispatckKeyEvent()をオーバーライドして、BACKキーが押されたらfinish()を呼び出すようにコードを書いた。 GPSを使うので、LocationManage…
「そだてろぐ」は、個人レッスンでなにかを教えている講師やトレーナーの方々が、「いつ」・「誰に」・「何を」指導したのかを記録するためのAndroidアプリです。要するに、「前回のレッスンでどこまでやったっけ?」「このレッスンはやったんだっけ?」とい…
AdMobを使ってAndroidアプリに広告を表示するとき、ぐぐってみるとこういうコードを書けばできるって書いてある。 LinearLayout layout = (LinearLayout)findViewById(R.id.hoge); AdView adView = new AdView(this, AdSize.BANNER, "hogehoge"); layout.add…
画像に文字などを含んでいる場合は、日本語版と英語版で異なる画像を表示した方がいい場合がある。最初は strings.xml に画像のファイル名を書いたりして動的に切り替えようとしたけど、どうもうまくいかない。 そこで、Localeを参照してレイアウトそのもの…
Androidアプリを作ってて、res/menu/hoge.xml なんかでメニューを定義したとする。定義したメニューのうちの特定のメニュー項目だけを、特定の条件で無効化したい時がある。 onCreateOptionsMenu()メソッドの中で制御すればいい。 @Override public boolean …
AndroidアプリでDate型のデータをsqliteに保存したいけど、sqliteはdateに対応する型を持ってない。 Androidアプリを作り始めたとき、普通の人はどうやってるんだろうってぐぐってみると、textで保存してるサンプルばかりが出てきたので、そうやって実装した…
ぐぐれば、zxing を使えばいいってことはすぐに分かる。 さて、どういうコードを書けばいいのかを調べてみるが、いろいろとめんどくさいことを書いてあるブログなどを発見。 zxing をダウンロードして、android アプリのサンプルが含まれているので、そのコ…
Eclipseで、Androidプロジェクトの中にJUnitテストを作った。テスト対象はPOJOなんで、通常のJUnitテストとして実行(メニューバーからだと[実行]-[実行]-[JUnitテスト])した。 すると、コンソールにこんなエラーが出て動かない。 # guarantee(_name_index !=…
Android adb sqlite3 とかでぐぐると、 $ ./adb shell とかすれば、簡単に sqlite3 が使えるように書かれてるサイトがいっぱいある。けど、そんな簡単じゃなかった。そもそも標準の状態だと su すらできないので、root 権限を取得できない。 root権限を取れ…
Spinnerで扱うオブジェクトは、String型とは限らないんだけど、ぐぐってヒットするサンプルはどれもString型ばかり。 ってことで、String型以外のオブジェクトを扱うための実装方法を調べてみた。 layoutは普通通りに書けばいいみたい。 とりあえず、String…
EclipseでAndroidプロジェクトを作ってて、いろんなAndroidアプリで共通に使えるようなライブラリを作った。とすると、それは別プロジェクトにした方がいいから、android-utilsとかいうプロジェクトを作って、そちらにクラスを作った。ついでに、エンティテ…
Androidでアプリを作ろうとするとき、いくつかの入門的なサンプルに従って作ってたら、バッドノウハウのカタマリみたいな状況になってきた。Activityクラス内に内部クラスでListenerを実装するとか。 もうこれはメンテしたくない的な。 やっぱりクラスの責務…