我正在制作这个学校项目,我需要从活动I中取回结果
startActivityForResult(Activity2, 100);
然后在活动二中我
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(....);
final Intent BackToActivityOne = new Intent(Activity2.this, ActivityOne.class);
if(requestCode = this.REQUESTCODEACTIVITY && resultCode = RESULT_OK && data != null){
//from the activity2
sum = data.getIntExtra("sum",0);
//to the activity1
BackToActivityOne.putExtra("total",sum);
btn1.setOnClickListener(new view.OnClickListener(){
@Override
public void onClick(View view){
BackToActivityOne.putExtra("code",1000);
setResult(RESULT_OK,BackToActivityOne);
finish();
}
});
btn2.setOnClickListener(new view.OnClickListener(){
@Override
public void onClick(View view){
BackToActivityOne.putExtra("code",1001);
setResult(RESULT_OK,BackToActivityOne);
finish();
}
});
}//if
}//onActivityResult(...)
这就是问题所在,当我点击btn1或btn2时它会杀死我的应用。
但是我希望应用程序返回到我进行处理的activity1
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(....);
if(resultCode = RESULT_OK && data != null){
final int Code = data.getIntExtra("code",0);
if(code == 1000){
//code to do
}
else if(code == 1001){
//code to do
}
}//if
}//onActivityResult(...)
我确实做错了什么,但我无法找到答案。希望有人可以帮我找到错误。
答案 0 :(得分:1)
你混合了两件事。 protected void onActivityResult
只应在第一个活动中被覆盖。
我发现,活动有两个按钮有两个按钮。你的代码:
btn1.setOnClickListener(new view.OnClickListener(){
@Override
public void onClick(View view){
final Intent BackToActivityOne = new Intent(Activity2.this, ActivityOne.class);
BackToActivityOne.putExtra("code",1000);
setResult(RESULT_OK,BackToActivityOne);
finish();
}
});
应位于onCreate
,您可以从中查看引用。不在onActivityResult
。记得通过id获取视图并初始化参考!我并不认为最终是意图所必需的。
答案 1 :(得分:0)
Haaa是的,我的不好,我有第三次和第四次活动。 1活动开始2然后2开始3. 3开始4取回结果并再次开始4次。 当这个来回完成时,活动3返回到2然后btn1和btn2文本改变并设置一个新的onclick方法。这就是为什么它是一个onactivityresult()。
我最终的意图是来自android studio的自动更正。如果我之前没有进入决赛。我无法将其称为我的onclick方法。这是错误代码。
variable 'BacktoActivityOne' is accessed from whithin inner class,
needs to be declared final
我需要的是:
但是当我点击btn1或btn2时。我的应用程序已被杀死,并且没有任何内容发送到activity1。
我的猜测是,我已经在OnActivityresult(在activity2中)宣布了最终的Intent有什么问题,因为当我在Activity3或4上看它时,android studio会把它写在" black&#34 ; (颜色),但是当我将它放在setResult(RESULT_OK,intent)上时,我在Activity2上的意图; < - 此处意图以紫色着色,而不是黑色