1

Благодарим заранее за то, что вы передали мою проблему.SlidingTab с фрагментом startActivityForResult не работает

У меня 2 деятельности:

активность A и B. активности

Деятельности Вызова активность Б.

Деятельности В представляет собой деятельность для скольжения Tab (5 фрагментов на скользящем Tab).

На одном из фрагмента, я использую startActivityForResult()

intent = new Intent(this.getActivity(), Research.class); 
intent.putExtra("Type", temp_type); 
intent.putExtra("bundle", bundleapp); 
intent.putExtra("position", position); 

getActivity().startActivityForResult(intent,REQUEST_CODE); 

Я также попытался:

intent = new Intent(this.getActivity(), Research.class); 
intent.putExtra("Type", temp_type); 
intent.putExtra("bundle", bundleapp); 
intent.putExtra("position", position); 

startActivityForResult(intent,REQUEST_CODE); 

Первая часть работы, потому что я был перенаправлен на научно-исследовательской деятельности.

На исследовательской деятельности я называю

compteur = 0; 
Intent data = new Intent(); 
Bundle bundletest = new Bundle(); 
bundletest.putSerializable("Object", ObjectTest); 
data.putExtras(bundletest); 
Log.e("DEBUG", data.toString()); 
setResult(15, data); 
super.finish(); 

Именно здесь у меня есть проблемы.

Метод super.finish() не вызывает onActivityResult() на активность B

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    Log.e("DEBUG","ici"); 
    super.onActivityResult(requestCode, resultCode, data); 
    String temp_path = "none"; 
    String temp_name_file = "none"; 

    if (resultCode != RESULT_CANCELED) 
    { 
     // Some code here 
    } 
} 

У меня есть также метод, называемый onActivityResult на моем фрагменте, но не называется ни.

Кто-то может мне помочь ???

Sincerly,

Edit:

Проблема:

Я начинаю свою деятельность B от деятельности A. В активность B У меня есть SlidingTabLayout (такой же, как Google IO код 2014). На одном из 5 фрагментов я использовал callActivityForResult() ===> Активность C.

В действии C ==> Я вызываю finish() или super.finish(). После этого я возвращаюсь к Activity A ===> Первое недоразумение. (Почему активность A) ===> Второе, No Called OnActivityResult() сделано ....

Возможно, мое приложение Crash ??? Но я не вижу ничего на LogCat

Спасибо Опять

ответ

1

Вызов startActivityForResult вызовет onActivityResult в деятельности, которая началась, поэтому в этом случае активность А будет принимать вызов onActivityResult. Кроме того, при использовании startActivityForResult вы должны установить код результата, вызвав setResult перед вызовом finish, чтобы помочь вам различать различные состояния результата (то есть успех и отказ).

+0

Я вызвал onActivityResult на активность A и B. Я также использовал setResult непосредственно перед super.finish(). – kevingiroux

1

Я что-то забыл. После звонка finish метод, я возвращаюсь в действие. Как ничто не случалось.

+0

вместо super.finish() попробуйте удалить супер и вызывать только метод finish(); super.finish может назвать вашу базовую активность законченной, но не вашей дочерней деятельностью. –

+0

Ничего не меняется. – kevingiroux