A Day In The Life

とあるプログラマの備忘録

androidm5

TextViewの特定の文字列を画像に置きかえる方法

TextViewの特定の文字列を画像に置きかえたいことって意外とあると思います。 たとえば":)"という文字列をスマイリー画像に置きかえたいとか、そんな時にはcom.google.android.utilパッケージにあるSmileyResourcesクラスとSmileyParserクラスを使うと比較的…

イベントリスナー VS Broadcast Intent

ServiceからActivityへのイベント通知をイベントリスナーを使って通知するべきかIntentをbroadcastして通知すべきかという議論が一部の開発者の間で話題になっていました。 今まであまり意識してなかったので自分なりに指針を決めました。 イベント通知を不…

GTalk系イベントリスナーの使い方

com.google.android.gtalkserviceパッケージには以下のようなイベントリスナーがあります。IChatListenerIGroupChatInvitationListenerIRosterListenerこれらのイベントリスナーは普通のイベントリスナー(たとえばView.OnClickListener)のようにActivityで使…

IGTalkSessionをもっと便利に簡単に使えるクラス

GTalkSessionというGTalkを簡単に使えるクラスを作成しました。 GTalkSessionクラスはIGTalkSessionオブジェクトを生成して管理してくれます。 通常IGTalkSessionを使うとこんな感じの実装になると思います。 public class SampleActivity extends Activity …

Androidアプリ開発で役に立つライブラリ

Androidアプリ開発で役に立ちそうなライブラリを作成しました。 今のところGoogle Talkまわりが中心ですが随時増やしていく予定です。 GTalkService GTalkSession AnimationUtils LocationUtils StringUtils ソースはこちらで公開しています。 http://code.g…

Mame Talk1.2.1をリリースしました。

Mame Talk1.2.1をリリースしました。 以下1.1.1からの変更点です。コンタクトリストのタイトルにアカウント情報を表示するように変更起動アニメーション追加友達を招待する画面でアドレス帳からメールアドレスを選択できるように変更コンタクトリストのフォ…

Android勉強会第1回に行ってきました。

19日の月曜日に第1回Android勉強会に行ってきました。 業務の都合で30分ほど遅れて行ったのですが80人収容の会場がいっぱいで座ることができませんでした。 Androidに対する関心の高さがうかがえます。 第1部は丸山先生によるActivityとIntentの説明 第2部は…

Avatarの表示

AndroidでGoogle TalkのAvatarを表示する方法です。 Base64デコードしなきゃいけないなんて全く気付きませんでした。 String contact = GTalkUtils.getUserName(gtalkSession); Cursor cursor = getContext().getContentResolver().query( Im.Avatars.CONTEN…

Android上で動くGTalkクライアントMame Talk1.1.1をリリースしました。

今日Mame Talkの1.1.1をリリースしました。 Avatarの対応とSubscription Requestの対応が一通り終わりだいぶそれらしくなったと思います。 今回のリリースにともないAndroid Developers Challengeにも再度エントリーしました。 エントリーはこれで5回目です…

リンクを表示する

TextViewでURLリンクを表示する方法です。 TextView noteView = (TextView) findViewById(R.id.noteview); noteView.setText(someContent); Linkify.addLinks(noteView, Linkify.ALL); 表示されたリンクをダブルクリックすることでリンク先のページにジャン…

モーダルダイアログなら呼び出し元の処理を止めてくれ。

Androidのダイアログ、見た目上の動きはモーダルです。しかしプログラムではDialog#showメソッドを呼んだ後の処理がとまらず流れてしまいます。 例えばアクティビティにて以下のようなプログラムがあった場合 Dialog dialog = new Dialog(this); dialog.setT…

Parcelable実装してください。

GroupChatInvitationクラスはなぜParcelableインターフェースを実装してないのだろうか? writeToParcelメソッドを持っているしCREATORフィールドもあるので振る舞い的にはParcelableだと思うんですけどねぇ...。 Parcelableを実装してくれるとIntentに直接…

Android上で動くGTalkクライアントMame Talk

Google Android上で動作するGTalkクライアントMame Talkをリリースしました。 SourceForge.jpにてソースコードとapkファイル(Androidの実行形式)を公開しています。 Mame Talk グループチャットの動作が多少不安定なので今後修正して3月中旬までに安定版をリ…

グループチャット追加画面の開発

M5に対応したグループチャット追加画面の実装をします。 画面イメージは↓のような感じです。 友達一覧にチェックをつけれるようにしてグループチャットに招待したい友達を選択します。 Addボタンを押すとグループチャットが作成されコンタクトリストにグルー…

グループチャットキタ━━━━(゜∀゜)━━━━ッ!!

グループチャットできるようになりました。 この前バグか?なんて書きましたがやり方が間違ってただけでした。 簡単に書くとcreateGroupChatSessionした後にcreateChatSessionするとダメでgetChatSessionでセッションを取得すると問題なくメッセージが送受信…

グループチャットのメッセージ受信でヌルポ

グループチャットのメッセージを受信するとcom.google.android.googleappsでNullPointerが発生して落ちます。 こんなところで発生されちゃ対策が打てません。 Androidのバグかな...。

getListView().getSelectedItem()メソッドがおかしい

Android SDKをM5にアップグレードしてからListActivityクラスのgetListView().getSelectedItem()メソッドがどうもおかしいです。 現象: onListItemClickイベントでgetListView().getSelectedItem()を呼ぶと毎回nullが返ってくる。 他のイベントから呼ばれた…

M3→M5変更点

Android SDKのバージョンがM3からM5にアップしいろんな変更がありました。 気になったところをピックアップします。 Content Provider関連 ContentUriクラス名変更 →Uri メソッド名変更 OldNew new ContentURI(String) Uri.parse(String) ContentURI.create(…

変わりすぎだろこれは

Androidの新版でましたね。 はっきり言って仕様変わりすぎです。 パッケージ移動やらメソッド名変更やら多すぎ。 なかでもXMPP関連の変更は痛すぎる。XMPPからGTalkに名称が変わってる。 がんばって作ったGTalkクライアントは壊滅状態です。 どうしよう〜。 …