Android заканчивает родительскую активность - PullRequest
1 голос
/ 17 ноября 2011

У меня есть 3 различных действия в TabGroupActivity. Допустим, A - Parent, B - Child 1, C - Child 2.

A --- запускается -> B B --- запускается -> C

и у меня есть диалоговое окно с предупреждением на C, которое показывает какое-то сообщение. Я хочу вернуться к занятию А., когда я нажимаю кнопку ОК в диалоговом окне.

Но проблема в том, что я могу открыть упражнение C и из других занятий, и я хочу вернуться к их родительским действиям. Поэтому мне нужно сделать что-то, что будет работать независимо от того, какая активность открывается C. Я пытался с этим, но не работал:

Intent intent = new Intent(Synchronization.this,Synchronization.this.getParent().getClass());  

но это не помогло мне. Есть предложения?

Ответы [ 2 ]

4 голосов
/ 17 ноября 2011

Вам просто нужно использовать два Activity метода, а именно.startActivityForResult() и onActivityResult()

Пример: http://www.vogella.de/articles/AndroidIntent/article.html#explicitintents

Вот логика:

В ActivityB

Запустить ActivityC с помощью startActivityForResult (activityCIntent, INT_CODE);

В ActivityC

Теперь проверьте, нажата ли Dialog OK Button, если да, то установитерезультат с использованием setResult(RESULT_OK,intent);, а затем вызов finish();

Затем управление будет перенаправлено на метод ActivityB onActivityResult().Теперь внутри onActivityMethod () проверьте, есть ли result_code==RESULT_OK и requestCode = INT_CODE.Если да, тогда просто позвоните finish();

0 голосов
/ 17 ноября 2011

В действии B запустите действие C как startActivityForResult(), поэтому, когда вы закончите действие C, оно вернется к B с результатом. В результате вы можете передать флаг объекту намерения.

Теперь, когда вы закончите действие C с помощью кнопки ok, установите результат как RESULT_OK в setResult (), если вам нужно передать данные обратно в действие B, вы можете установить данные в Intent, добавить это намерение с помощью setResult. (), а затем завершите действие C.

Теперь в B проверьте код запроса от C, затем завершите это действие. При запуске этого действия C вы также можете запустить действие B для действия A.

И вам нужно переопределить onActivityResult () в действии B, и если вы запускаете действие B для результата, то вам также необходимо определить также в действие A

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...