#java #android #android-activity #android-intent
#java #Android #android-активность #android-намерение
Вопрос:
Я разрабатываю приложение для чата, но у меня проблема. У меня есть список контактов, и когда я выбираю один контакт, я начинаю новое действие
Intent i = new Intent(this, MessageScreen.class);
startActivity(i);
но, когда я выбираю другой контакт для разговора, я буду использовать то же действие.
но оно всегда открывается с последним экраном контакта, а переменные по-прежнему имеют старые значения.
Я хотел бы создать что-то похожее на Google Talk, где вы можете начать общение с другим контактом, и все сообщения будут отображаться на одном экране, и вы сможете быстро переключаться между чатами без необходимости реконструировать экран, перезагружать сообщения и т.д.. У кого-нибудь есть идеи о том, как это реализовать?
Ответ №1:
Переключение между действиями не является обычной функцией, похоже, что есть одно второе действие, у которого есть ViewPager, заполненный несколькими чатами. При запуске этого действия они, вероятно, добавляют флаг изменить порядок на передней панели к намерению и переопределили onNewIntent для добавления нового представления на пейджер.
Комментарии:
1. Правильно, это имеет гораздо больше смысла, а также не так сложно реализовать. Спасибо.
Ответ №2:
Попробуйте что-то вроде*:
i.PutExtra ("key", value);
перед запуском действия (например, сохраните имя пользователя), а затем прочитайте ваше значение из действия и настройте (например, пользовательский интерфейс) его на основе значения
примечание: синтаксис может немного отличаться, поскольку я использую C для работы с Android#
Комментарии:
1. Я использую дополнительные функции для передачи идентификатора контакта для загрузки сообщений. Мне интересно, есть ли какой-нибудь способ, при котором мне не нужно каждый раз перезагружать сообщения. В Google Talk вы можете перемещать окна чата от одного к другому, не видя никакой загрузки, вы можете видеть оба экрана чата, когда переходите к следующему окну чата.