Android: захват возврата активности

У меня есть вопрос о начале новых мероприятий. Это сводится к этому. У меня есть 3 вкладки на вид

A) contains gMap activity B) camera activity C) some random text fields. 

Требование состоит в том, что приложение работает в режиме портрета.

Все 3 вкладки работают так, как ожидалось, за исключением поверхности предварительного просмотра камеры (B). Он поворачивается на 90 gradleусов. Это единственный способ сделать это правильно – настроить приложение на пейзаж, который бросает все мои вкладки, и в значительной степени не работает.

Мое решение таково: заменить

моя активность камеры с регулярной активностью, которая пуста с исключением

 Intent i = new Intent(this,CameraActivity.class); startActivity(i); 

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

Главное, когда он возвращается, он возвращается к пустой (черной) странице под вкладкой (потому что она «пуста»). Как я могу захватить возвращаемое событие назад на страницу, которая называется активностью, а затем посмотреть, какие действия они выполнили?

Я могу установить onclicklistener, где я могу ответить на поддельные вкладки (изображения), которые нужно щелкнуть, чтобы выйти из действия камеры. При выходе вкладка должна обновляться так, чтобы она возвращалась. какие-либо предложения?

Благодаря,

    Я сосредоточусь на ответе на то, как разрешить ваш рабочий стол так, чтобы он вел себя так, как вам хочется.

    Для захвата действий, выполняемых для одного действия в другом, требуется три шага.

    Запустите вторичную активность (свою «активность камеры») как субактивность, используя startActivityForResult вместо startActivity .

     Intent i = new Intent(this,CameraActivity.class); startActivityForResult(i, STATIC_INTEGER_VALUE); 

    В пределах субактивности (активность камеры) вместо того, чтобы просто закрывать Activity, когда пользователь нажимает на другое изображение вкладки, вам нужно создать новый Intent и включить индекс вкладки, отображаемой при возврате в родительское приложение с помощью пакета дополнительных компонентов , Чтобы передать его обратно родительскому вызову setResult перед вызовом finish завершить работу камеры.

     resultIntent = new Intent(null); resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue); setResult(Activity.RESULT_OK, resultIntent); finish(); 

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

     @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch(requestCode) { case (STATIC_INTEGER_VALUE) : { if (resultCode == Activity.RESULT_OK) { int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER); // TODO Switch tabs using the index. } break; } } } 
    Давайте будем гением компьютера.