Java 返回空意图对象的子活动

Java 返回空意图对象的子活动,java,android,android-intent,android-activity,ibm-mobilefirst,Java,Android,Android Intent,Android Activity,Ibm Mobilefirst,当试图将数据从一个活动传递到另一个活动时,它在一个方向上工作良好父>>子。但是返回路径子>>父对象返回空的意图对象。我从明天开始就在尝试,我已经找到了很多答案,但都没能成功。请帮帮我 主活动配置文件: <activity android:name="com.abc.OpenExternalApplication" android:label="@string/title_activity_view_document"></activity> 下面是将控制权传递回主活动

当试图将数据从一个活动传递到另一个活动时,它在一个方向上工作良好父>>子。但是返回路径子>>父对象返回空的意图对象。我从明天开始就在尝试,我已经找到了很多答案,但都没能成功。请帮帮我

主活动配置文件:

<activity android:name="com.abc.OpenExternalApplication" android:label="@string/title_activity_view_document"></activity> 
下面是将控制权传递回主活动的子活动:

 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();

}
我得到的输出是空数据


我遇到的一个错误是:“活动”将作为新任务启动,因此取消“活动结果”。

为什么不在父活动上声明一个变量,并在子活动上使用该变量来存储值?

首先,不使用该变量的原因是:

  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
Intent resultIntent = new Intent();
然后首先放入结果,然后再放入setResult(按此顺序)

如果它没有改变任何东西,请稍后尝试:

getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, resultIntent);
然后,您应该在onActivityResult中检查您的请求代码:

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");
    }
}

而不是
Intent resultent=getIntent()为什么不使用
Intent resultent=newintent()我尝试使用new Intent(),但也没有结果。SUCCESS的值是多少?SUCCESS的值是多少?CALLBACK的值是1。resultCode==result\u OK返回false。发布完整代码不是大问题,我会解决,但发布所有代码和Xml@user2173681我已经编辑了这个答案。请再试一次。编辑为:
setResult(RESULT\u OK,resultint)我正在处理两个不同的应用程序。它在那种情况下有效吗?
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, resultIntent);
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");
    }
}