onActivityResult не вызывается после того, как дочернее действие вызывает finish () - PullRequest
0 голосов
/ 14 июня 2011

Хотя есть несколько вопросов по этой теме, я не смог найти правильный ответ на этот вопрос.

У меня есть основное действие (это одно действие во вкладке), откуда я вызываю действие входа в систему.

    Button chdbtn=(Button)findViewById(R.id.Add);
    chdbtn.setOnClickListener(new OnClickListener() {   
        @Override
        public void onClick(View v) {
        Intent myIntent = new Intent(main.this, Login.class);
            startActivityForResult(myIntent, 1001);
    }
    }); 


protected void onActivityResult(int requestCode, int resultCode, Intent data){
        if(requestCode == 1001)
        {
            if(resultCode == RESULT_OK)
            {
                          Log.i("Info","Inside");
            }
        }
}

И в моем классе входа в систему, когда я нажимаю на кнопку, я делаю это

    Button chdbtn=(Button)findViewById(R.id.Addchild); 
    chdbtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                Intent Ireturn = new Intent();
                setResult(RESULT_OK,Ireturn);
                finish();
        }
    });

Но когда я нажимаю на кнопку в процессе входа в систему, элемент управленияне подходит к основным действиям по методике ActiveResult.Кто-нибудь может подсказать мне, в чем проблема.


VIJAYapp.sample.ChildEntry1 $ 1 / onClick: 23

INFO / ActivityManager (59): Начальная деятельность: Intent {cmp = app.sample / .ChildLogin}

WARN / ActivityManager (59): startActivity вызывается из неактивного контекста;форсирование Intent.FLAG_ACTIVITY_NEW_TASK для: Intent {cmp = app.sample / .ChildLogin}

DEBUG / PhoneWindow (999): не удалось сохранить фокус, из-за которого сфокусированное представление com.android.internal.policy.impl.PhoneWindow$DecorView@43e4b620 не имеет идентификатора.

INFO / ActivityManager (59): отображаемое действие app.sample / .ChildLogin: 460 мс (всего 460 мс)

INFO / VIJAY (999): VIJAYapp.sample.ChildLogin $ 1 / onClick: 24


Над журналом, который я получаю, нажимая на кнопки.Я вижу, что с заданием есть какая-то проблема ... есть ответы?

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Я думаю, что ваша проблема решена сейчас.Я сделал некоторые изменения в вашем коде, и теперь вызывается onActivityResult (проверьте измененный код: http://www.4shared.com/file/_VR3zi28/CopySampleApptar.html?):

1.-При вызове класса активности Login используйте: getParent (). StartActivityForResult (myIntent, 1001);

Я не очень разбираюсь в Android, но я понимаю, что тот, кто управляет потоком между действиями, это класс ActivityGroup, поэтому вы должны запускать действия с использованием экземпляра ActivityGroup. В предыдущей строке getParent () ссылается нав ActivityGroup.

2.-Поскольку вы используете экземпляр ActivityGroup, ваш onActivityResult также должен быть помещен в этот класс.

0 голосов
/ 14 июня 2011

Рассмотрите возможность замены строк

        Intent Ireturn = new Intent();
        setResult(RESULT_OK,Ireturn);

с

setResult(RESULT_OK,getIntent());    

getIntent () возвращает активность, с которой начался вход.

...