TabActivity, показывающая несколько вкладок одного и того же действия (Инициализация свойств дочерних действий) - PullRequest
0 голосов
/ 06 декабря 2011

Я только начал разработку Android 3 дня назад и пытаюсь разработать мессенджер для Yahoo.Чертовски первое приложение, верно ?!: D

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что я пытаюсь реализовать окно чата с вкладками, которое должно показывать людей, с которыми я сейчас общаюсь.Я разработал файл макета и необходимый класс активности для одного окна чата, и я использую TabActivity, чтобы показать некоторые из них пользователю.Однако проблема в том, что я храню некоторую информацию, относящуюся к чату (например, идентификатор пользователя, с которым я сейчас общаюсь), в самом классе действия, и у меня возникают проблемы при инициализации этих значений при создании новой вкладки.

Изначально я использовал BroadcastReceiver и намерение инициализировать следующим образом:

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 всех действий установлены на значение, переданное для последней вкладки.быть созданным!

Каково решение / наилучшая практика для подобных ситуаций?Я даже правильно подхожу к проблеме?

Любая помощь очень ценится!

1 Ответ

1 голос
/ 06 декабря 2011

Проблема здесь в том, что вы регистрируете приемник Broadcast на каждой или ваших вкладках, и каждый ваш приемник получает трансляцию, устанавливая в ней переменную friendId.

Я не совсем уверен, что BroadcastReceiver является правильным подходом.

...