0

3日前にアンドロイド開発を始めたばかりで、Yahooのメッセンジャーを開発しようとしています。まさかの初応募ですよね!? :D

私が今直面している問題は、現在チャットしている人を表示するタブ付きの IM ウィンドウを実装しようとしていることです。単一のチャット ウィンドウに必要なレイアウト ファイルとアクティビティ クラスを設計し、TabActivityそれらのいくつかをユーザーに表示するために を使用しています。ただし、問題は、チャット固有の情報 (現在チャットしているユーザーの ID など) をアクティビティ クラス自体に保存していて、新しいタブが作成されたときにそれらの値を初期化する際に問題に直面していることです。

最初に、BroadcastReceiver次のように初期化するために a と a インテントを使用しました。

protected class MyListener extends BroadcastReceiver
    {

        @Override
        public void onReceive(Context context, Intent intent)
        {
            if (intent.getAction().equals(
                    "com.sirm2x.messenger.CHAT_WINDOW_CREATED"))
            {
                 ChatWindowActivity.this.friendId = intent.getExtras()
                 .getString("friendId");
            }
        }
    }

問題は、friendIdすべてのアクティビティの が、作成される最後のタブに渡された値に設定されていることです!

このような状況の解決策/ベスト プラクティスは何ですか? 問題に正しくアプローチしていますか?

どんな助けでも大歓迎です!

4

1 に答える 1

1

ここでの問題は、各タブまたは自分のタブにブロードキャスト レシーバーを登録し、各レシーバーがブロードキャストを受信して​​、friendId 変数を設定することです。

ここで BroadcastReceiver が正しいアプローチであるかどうかはよくわかりません。

于 2011-12-06T13:10:34.170 に答える