2012年6月25日月曜日

DialogFragmentメモ

Android Developersブログの記事「Using DialogFragments」を読んだのでメモ。
http://android-developers.blogspot.jp/2012/05/using-dialogfragments.html

先日、リファレンスを見ていてActivityのshowDialog()/dismissDialog()はdeprecatedなので、代わりに「DialogFragmentを使いましょう」と書いてあった。
気になっていたので、読んでみました。

このサンプル、v4 support libraryを使ってます。
1.6~2.3でもフラグメント使えるようになるアレです。
Eclipseでプロジェクトのルートフォルダを右クリックして
[Android Tools] - [Add Support Library...]
とやればOKです。
自動で
・libsフォルダの作成
・android-support-v4.jarの配置
・ビルドパスの設定
が行われます。

使い方(ざっくり)
・DialogFragmentを継承したクラスをつくる
・レイアウトはonCreateView()の中でinflate
・表示したい時は、上記のクラスをインスタンス化してshow()メソッドを呼ぶ

注意
このサンプルプログラム、IMEが「Google日本語入力Beta」だと動きませんでした...
onEditorAction()でアクションIDがIME_ACTION_DONEだったら入力内容をToastに表示してダイアログを閉じる作りですが、ログを仕込んで確認したところIME_ACTION_DONEが発生していないのが原因。
「Google日本語入力Beta」ではEnterキーをタップした時のアクションIDがIME_ACTION_UNSPECIFIEDでした。
他のIMEに切り替えたところ、問題なく動作。

感想
ブログ記事のスクリーンショットにもあるように4.xでTheme.Holoが効いているとそれなりの見栄えで表示されますが、2.xで表示するとこんな感じに...

ちゃんとレイアウトしないとダメですね。
ちょっとしたダイアログ出すのは、これまで通りAlertDialog.Builderでやろうかなぁというのが正直なところ。
とか、思ってたらこんな記事を発見!
Y.A.Mの雑記帳
「Android DialogFragment」を使うときの注意点。」
こうやって使うんですね。。
こんな有用な情報を発信できる存在でありたい...

参考
サンプルコードの閲覧・ダウンロードは下記から
dialogfragmentdemo


2012年6月24日日曜日

実機デバッグでプリファレンスの内容を確認する方法

エミュレーターはroot権限なので/data/data/パッケージ名/以下のファイルが見られますが、実機では権限が無いため見られません。
「実機でも見られたらデバッグ捗るのになぁ」というお話。

前提条件
AndroidManifest.xmlの
android:debuggableが"true"であること。
※明示的にdebuggableを指定していない場合はデバッグビルド / リリースビルドでtrue / falseを勝手に切り替えてくれる

手順
adb shell
run-as パッケージ名

ran-asコマンドにより、指定したアプリ(パッケージ名)のユーザーに切り替わるので/data/data/パッケージ名/以下が見られるようになる。
あとは、/data/data/パッケージ名/shared_prefs/以下にあるプリファレンスのxmlファイルをcatコマンドで表示すれば内容が確認できます。

注意事項
便利なrun-asコマンドですが、すべての実機で使えるわけではないようです。
以下、動作確認結果です。

[OK] Nexus S
[OK] ICONIA TAB A500
[NG] IS11LG *コマンド実行権限はあるが...
[NG] IS06 *コマンド実行権限なし
[NG] IS01 *コマンド実行権限なし

データベースも!と思ったのですが、sqlite3コマンドの実行権限が無かったり、そもそもsqlite3コマンドが無かったりでだめでした。。

2012年6月5日火曜日

GitHub for WindowsでAndroidプロジェクトをGitHubにアップする方法

1. EclipseでAndroidプロジェクトを作成
2. 作成したプロジェクトのルートディレクトリに.gitignoreファイルを配置
   ※.gitignoreファイルは下記からDLした
3. Git Shellを起動
4. 作成したプロジェクトのルートディレクトリに移動してコマンド”git init”を実行
5. GitHub for Windowsを起動
6. GitHub for Windowsのウィンドウに、作成したプロジェクトのディレクトリをドラッグ&ドロップ
7. GitHub for Windowsのlocal repositoriesを開く
8. 追加したプロジェクトを開く
9. COMMIT MESSAGEを記入して[COMMIT]ボタンを押下
10. ウィンドウ上部中央の[push to github]を押下
11. DESCRIPTIONを記入して(任意)[PUSH]ボタンを押下

12. ウィンドウ上部中央の[publish]を押下
13. ウィンドウ上部中央に”in sync”と表示されたら完了


2012年6月4日月曜日

ADT 20 Preview 3 メモ

インストール方法、リリースノートは以下から。
http://tools.android.com/download/adt-20-preview

気になった変更点
・layout editorでLint先生がグラフィカルに叱ってくれる。
・LogCatの文字色が変更可能に
設定は [Window] - [Preferences] - [Android] - [LogCat] - [Colors]
・複数デバイスに同時Deployできる。
設定はプロジェクトの
[Run As] - [Run Configurations...] - [Target]タブ - [Launch on all compatible devices/AVD's]
※実機3台繋いで試したら動いた
・今後、SDK ManagerからPreview版のSDK ToolsがDLできるようになる?
SDK Managerの [Tools] - [Options...] - [Others] - [Enable Preview Tools]

2011/05/04追記
Emulatorが起動しなくなってしまったのでATD 18に戻しました。
※症状は起動画面で固まる...
環境はEclipse3.7/Windows 7 64bitです。
Mac環境ですが、こんなIssueが上がってますね。
Issue 32577: Emulator crashes when loading with ADT 20 Preview 3
http://code.google.com/p/android/issues/detail?id=32577

2012年6月3日日曜日

スプラッシュ画面を表示する方法

Androidアプリでスプラッシュ画面を表示する方法のメモ

アプリを起動するとスプラッシュ画面(SplashActivity)を表示。
3秒後にメイン画面(MainActivity)に遷移する。
スプラッシュ画面の表示時間は
Handler#sendEmptyMessageDelayed()の第2引数で調整。
単位はミリ秒。
※LayoutのXMLとAndroidManifest.xmlの設定は割愛。