0

當試圖將數據從一個活動傳遞到另一個活動時,它在一個方向上正常工作父>>子。但是返回路徑child >> parent返回NULL intent對象。我從明天開始嘗試,並且經歷了很多答案,但無法實現。請幫助我。子活動返回NULL意圖對象

主要活動的配置文件:

<activity android:name="com.abc.OpenExternalApplication" android:label="@string/title_activity_view_document"></activity> 

這裏是我從我的家庭活動啓動活動:

protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     String appURI = getIntent().getStringExtra("appURI"); 

     Intent intent = getPackageManager().getLaunchIntentForPackage(appURI); 

     startActivityForResult(intent, SUCCESS_CALLBACK); 

} 

這裏是一個控制向後傳遞到主活動的子活動:

public void onClick(View v) { 

    if(v.equals(searchPolBtn)) { 

     String polNo = polNoEditText.getText().toString(); 

     Toast.makeText(getApplicationContext(), polNo, Toast.LENGTH_SHORT).show(); 

     Intent resultIntent = getIntent(); 
     // TODO Add extras or a data URI to this intent as appropriate. 

     setResult(Activity.RESULT_OK, resultIntent); 

     resultIntent.putExtra("data", polNo); 

     this.finish(); 
    } 
} 

這裏是等待結果的父活動:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     if(data!=null) 
      LOGGER.warning(data.getStringExtra("data")); 
     else 
      LOGGER.warning("Data Is Null"); 

     this.finish(); 

} 

而我得到的輸出是數據爲空。

我得到的錯誤是:活動作爲新任務啓動,因此取消活動結果。

+0

檢查應答 – 2014-09-04 07:30:30

+1

而不是'意圖resultIntent = getIntent();'你爲什麼不使用'意向resultIntent =新意圖();' – helleye 2014-09-04 07:30:49

+0

我試圖用新的Intent(),但沒有結果爲此。 – yogesh 2014-09-04 07:35:02

回答

0
public void onClick(View v) 
    { 

    if(v.equals(searchPolBtn)) { 

    String polNo = polNoEditText.getText().toString(); 

    Toast.makeText(getApplicationContext(), polNo, Toast.LENGTH_SHORT).show(); 

    Intent resultIntent = getIntent(); 
    // TODO Add extras or a data URI to this intent as appropriate. 

    resultIntent.putExtra("data", polNo); 

    setResult(1, resultIntent); 



    this.finish(); 
    } 
} 




protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
    if (requestCode == SUCCESS_CALLBACK && resultCode == RESULT_OK && data!=null) 
    { 

    } 
}//onActivityResult 
+0

不工作。數據爲空。 – yogesh 2014-09-04 07:34:28

+0

什麼是SUCCESS_CALLBACK – 2014-09-04 07:39:28

+0

SUCCESS_CALLBACK的值是1. – yogesh 2014-09-04 07:42:27

-1

爲什麼不在父活動中聲明一個變量並在子活動上使用該變量來存儲值?

+0

我正在處理兩個不同的應用程序。它在這種情況下工作嗎? – yogesh 2014-09-04 07:41:11

+0

是的,它應該工作! – yhel 2014-09-04 07:43:58

0

首先是有沒有使用理由:

Intent resultIntent = new Intent(); 

然後先放後,接着的setResult(按照這個順序)

resultIntent.putExtra("data", polNo); 
setResult(Activity.RESULT_OK, resultIntent); 

,如果它不會改變任何東西試試這個算賬:

getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, resultIntent); 

然後你應該在onActivityResult中檢查你的requestCode:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if(requestCode == SUCCESS_CALLBACK){ 
     if(data!=null) 
      LOGGER.warning(data.getStringExtra("data")); 
     else 
      LOGGER.warning("Data Is Null"); 
    } 
}