お題 画面回転させて、縦/横で別のレイアウトを表示する 縦画面のときは ListView を表示 横画面のときは GridView を表示(1行2列) ただし、一度取得したデータは使いまわしたい 縦画面 横画面 実装のポイント Activity コンフィグ変更のたびに毎回 再生成 F…
一括インポート機能を使用して移行してみました。 idが dai4649 だったり。 URLは daichan4649 だったり。 いろいろとややこしいのですが、こちらでも4649お願い致します!
ネットワークからデータ取得(画像とか) データ取得完了したら画面にデータ反映 こういうパターンってよくありますよね。このときに画面回転等のコンフィグ変更(縦横切替とか)が行われると 「Activity のインスタンスが破棄->再生成」 されるので、何も考えて…
DialogFragment を private なインナークラスで定義してたら、 画面の回転(Activity再生成) でアプリが落ちてしまった。出力された例外はこれ。 Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment ErrorCaseDialogFr…
Androidの会福岡支部メンバー数人で輪講会をはじめました。今回のお題は通称 yanzm本2 と言われている、 Android UI Cookbook for 4.0 ICSアプリ開発術 です。実はちょっと前に Effective Java 第2版 の輪講をやってみたのですが、 それがまたなかなかおもし…
前回のエントリで AsyncTask#execute の挙動がAPI Levelによって違う、とわかりました。 では、どこで切り替えているのか。 てなことを twitter上 でぎゃーぎゃー言ってたら @zaki50さん から情報をいただきました! (@zaki50さん、ありがとうございます!) …
AsyncTask の挙動が Gingerbread と ICS で違う、という話を聞いて調べてみた。複数AsyncTask実行=バックグラウンドで並行処理 と考えてると、実は並行処理になってなくて処理が遅い、ってこと。結論を言うと、ソースをここだけ修正すればよさそう。 修正方…
前回 のエントリに引き続き、さらに ListView の高速スクローラまわりをカスタマイズしてみました。 (ついでにタイトル変更) 環境 2.3.3(API Level10)before after スクローラもいじったりましたwここで疑問。 ICSではどうなるのだろうか。 とりあえずソー…
Android Advent Calendar 12/18 担当の @daichan4649 です。 豪華メンバーがものすごく有意義なネタを記載されている中で、 空気を無視して ListView について誰得なネタを書いてみるとします。 ListViewには項目が多い場合に 「高速スクローラ」 を表示する…
11/11金 - 12土 で行われた Android Make Days in 明星和楽。 今回自分はスタッフとして参加させていただきました。メイン作業は司会。 部屋が複数あるので3人で交代しつつ、とのことだけども。 こんなでかいイベントで司会とか!!不安でガクブル。 と、自…
Activity/Service起動用のIntentを作るとき、 皆どうやってるのだろう、とふと疑問。 例えば Activity#onCreate 内で 「Service(test.intent.TestService)起動用のIntent」 を作るとする。 基本的な作り方はこんなかんじになるのかな? @Override public voi…
非同期処理を組んでると、 「別スレッド上でも Handler みたいなキュー管理がしたい」 って時があったりしますよねー。(きっと) そんなとき、HandlerThread を使うとわりと簡単に実装できたりする。 HandlerThread(公式) HandlerThread は java.lang.Thread …
実は母親と祖父が福島に住んでいたりする。 原発から半径数十キロとかそのレベル。 直接的な津波の被害にはあっていないのだが、 震災が起きた際にはもちろん電話も通じず、物流も止まってた。 ただ、わりと早い時間で電気/ガスも復旧し、 今は普段どおりの…
androidプロジェクト をビルド時に突然こんなエラーが出るようになった。 Error generating final archive: Debug Certificate expired on 〜 調べてみると「デバッグ用証明書の期限切れ」で発生するエラー、とのこと。 対処方法は2種類あるみたい。 debug.k…
全ての例外を自前でcatchしていれば何の問題もないんだけれども、 もしアプリ内で例外catch漏れしてしまった場合、 Dalvik VM まで例外が通知されて 「〜が予期せず停止しました。やり直してください」 のダイアログが出てアプリが強制終了してしまう。 これ…
例えば、アプリ内のボトルネック調査するとき、 重そうな処理にアタリつけて処理時間測定しますよね。 ベタにやるとこんな感じ。 // 測定開始 long start = System.currentTimeMillis(); // 測定したい処理 // 測定終了 long end = System.currentTimeMillis…
自分の Android に関する知識がすごく狭い範囲に偏っているなぁーと 意識することが最近よくあって。 全体を知るために何したらいいのかなーと考えたときに この Android技術者認定試験 を思いだしたので 試験内容を改めてチェックしてみました。 試験は以下…
Google謹製のテストフレームワークが! Introducing Native Driver サンプルではGoogleMapのテストが記載されとりますね。これはおもしろい。 Android Zaurusさんの日本語訳はこちら。 【超訳】AndroidのUIをUnitTestできるNative Driver テストコード書くの…
バージョン管理にコメントを残したとしても、ソースコードに改訂履歴のコメントを残す必要があるという主張 - プログラマとSEのあいだ 考えさせられた。 今の職場は svn 使用してます。 このあたりの意見は個人によってさまざま。 むしろコミットログ詳細を…
いつのまにか ADTのレイアウトエディタ が恐ろしく進化している!! 11(preview版)では xml を直接いじらなくても エディタ上だけでこんなことができたりする。 (正確には 10.x でも動作する機能が一部あり) 共通レイアウトの抽出 アニメーションのプレビュ…
AlertDialog.Builder#show〜 でダイアログ表示した状態で、 画面の縦横切替 を行うと例外発生してアプリ終了してしまった。 ログを見るとこんなエラーログが出力されている。 XxxActivity has leaked window com.android.internal.policy.impl.PhoneWindow$D…
表題のような常駐serviceを作成しようとすると BroadcastReceiver が intent(ACTION_BOOT_COMPLETED) を受けたらそれを契機にservice起動する という仕組みが主流だと思う。(自分はこれしか知らない)こんなserviceをeclipseで修正/動作確認しようとすると、 …
福岡でコミュニティ活動等いろいろな活動に尽力されていた、 @sugmak こと 杉山誠氏 が 2010/7/25 に永眠(享年44歳)されました。 自分が初めて参加した PHP in Fukuoka。 webのいろはもよくわかっていない、 コミュニティのこともよくわからない。 知り合い…
みんなで撮った写真を共有するとき、みんな何のwebサービス使ってるのだろう。 自分はオリジナル画像を手元に残しておきたい派なので、 ULしている画像を簡単に一括DL可能なPicasaを使用してて。 まわりのメンバーがよく使用しているflickrには一括DLする方…
昨日の話。いつもどおりSMS作ってたらとつぜん強制リセット。 画面にノイズが走ってぶつっと。appleマークが表示され。再起動後。SMSの続きを書く。 問題ないなーと思ってると今度はSMSだけが強制終了してホーム画面へ。 ここからはどのアプリでも日本語入力…
あけましておめでとうございます + ひさびさの更新。今年の目標は「健康第一、すべて自己責任」。うちらの仕事はカラダが資本。普段の生活も大事にしつつ、がんばろうと思ってる次第です。今後とも4649お願いいたします。 という年始エントリ。完全に出遅れ…
10/17(土)13時〜 AIPカフェにて、サト研(サイト運営・管理研究会(仮)Vol.10) が開催されたので参加してきました!前日に @Yaive、@hsmt と飲んだ際に顔出しちゃいなよ、ということになって。うっかり飛び入り参加させていただきました。参加表明すらしてな…
またまた id:yone098 にありがたい助言をいただいた。ループ処理書くとき、いつもこんな風に書いてた自分。 int[] objs = new int[Integer.MAX_VALUE / 10]; long start = System.currentTimeMillis(); for(int i=0; i
Mapの初期化をするとき、いままでこんなかんじでstaticブロックでやってたり。 private static Map<String, String> map = new HashMap<String, String>(); static { map.put("key", "val"); } んで、今日こんな方法もあるよー、と id:yone098 に教えていただいた。 private static Map<String, String> map =</string,></string,></string,>…
今日のランチのときに「ひらた君ってボーリング顔よね」と言われたのでラウンドワンに会社のみんなとボーリングに行ってきた。みんなは名字でゲーム登録。自分は新人のくせに調子にのってこんな名前で登録。空気を読まない男。かつてないハイレベルな争い。…