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