Android: onActivityResult () не вызывает - PullRequest
0 голосов
/ 04 апреля 2011

У меня проблема с onActivityResult ().

Я использую TabActivity в качестве основного занятия. Каждая из вкладок является ActivityGroup.

Подгруппа ActivityGroup A (Activity) отправляет намерение B (Activity), используя

startActivityForResult (,).

Но когда B Activity завершается, onActivityResult () не вызывается в A.

A Активность

Intent intent = new Intent(A.this, B.class);
startActivityForResult(intent, 1);

B Деятельность

Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();

Что не так?

Из-за TabActivity, ActivityGroup или Flag ??

Пожалуйста, совет ..

Ответы [ 3 ]

0 голосов
/ 03 мая 2012

Используйте приведенный ниже код, надеюсь, он будет работать.

 Intent intent = new Intent(getParent(), B.class);
    startActivityForResult(intent, 1); 
0 голосов
/ 24 января 2015

Попробуйте вызвать startActivityForResult, используя контекст tabgroup activity, содержащий вашу текущую активность, а затем прослушайте tabgroup activity.

Используйте это, чтобы получить tabGroupActivity:

TabGroupActivity parentActivity = (TabGroupActivity)getParent();

А затем позвоните startActivityForResult с него:

parentActivity.startActivityForResult(...);

Наконец, поместите прослушиватель onActivityResult в tabGroupActivity:

protected void onActivityResult(int requestCode, int resultCode,Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
    }
0 голосов
/ 04 апреля 2011

Проблема с ActivityGroup внутри TabActivity.Я предполагаю, что finishFromChild будет вызываться в родительской активности (в TabHost).Проверь это.

На самом деле ... Вам действительно нужна ActivityGroup внутри TabActivity ?!Избегайте этого, например, используйте простое представление TabHost на каждой вкладке вашего родительского TabActivity, чтобы TabActivity переключал представления, а не действия.

...