1

預先感謝你傳給我的問題的時間。SlidingTab與片段startActivityForResult不起作用

我有2個活動:

活動A和B.活性

活性的呼叫活動B.

的活動B是用於滑動翼片的活性(5個片段是在滑動標籤模塊)。

在片段中的一個,我使用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()不會對活動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()方法,我有一個也叫onActivityResult我的片段的方法,但不叫任。

有人能幫助我嗎?

誠懇,

編輯

問題:

我開始從活動A.在活動B的活動B我有一個SlidingTabLayout(同谷歌IO代碼2014 )。上5片段之一我用我調用startActivityForResult()===>活動C.

在活動ç==>我請光潔度()或super.finish()。之後,我回到活動A ===>第一次誤會。 (爲什麼活動A) ===>第二,沒有叫OnActivityResult()完成....

也許我的應用程序崩潰?但我沒有看到在logcat的

再次感謝

回答

1

調用startActivityForResult將觸發onActivityResult在啓動它的活動,所以在這種情況下,活動A將收到呼叫onActivityResult什麼。此外,使用startActivityForResult的時候,你應該在調用finish之前設置調用setResult的結果代碼,以幫助您不同的結果狀態區分(即成功VS失敗)。

+0

我在活動A和B上調用了onActivityResult。我還在super.finish()之前使用了setResult。 – kevingiroux

1

我忘了什麼事。在調用finish 方法後,我回到活動A中,沒有任何事情發生。

+0

而不是super.finish()嘗試刪除super並調用finish()方法。 super.finish可能會調用您的基本活動來完成,但不是您的孩子的活動。 –

+0

沒有什麼變化。 – kevingiroux