Android ActivityForResult介于3个活动之间
我在这件事上好几个小时都在头痛。我有3个活动,活动A打开B,C必须将数据传递给活动A。 在活动A中,我运行startActivityForResult:Android ActivityForResult介于3个活动之间,android,android-intent,android-activity,Android,Android Intent,Android Activity,我在这件事上好几个小时都在头痛。我有3个活动,活动A打开B,C必须将数据传递给活动A。 在活动A中,我运行startActivityForResult: public static final int REQ_CODE_ACT3 = 2; @Override public void onClick(View v) { Intent intent = null; intent = new Intent(A.this, B.class); startActivityForResult(int
public static final int REQ_CODE_ACT3 = 2;
@Override
public void onClick(View v) {
Intent intent = null;
intent = new Intent(A.this, B.class);
startActivityForResult(intent, REQ_CODE_ACT3);
}
然后B将数据传递给C
Intent singc = new Intent(B.this, C.class);
Bundle extras = new Bundle();
singc .putExtra("cto", d.cto);
singc .putExtra("colore", d.colore);
singc .putExtras(extras);
startActivity(singc );
finish();
最后,C应该将数据传递给A。
但是数据没有通过
lista.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
Dettaglio d = dettagli.get(position);
Intent intent=new Intent();
intent.putExtra("cto", d.cto);
intent.putExtra("colore", d.colore);
setResult(RESULT_OK,intent);
finish();
}
});
lista.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Dettaglio d=dettagli.get(位置);
意图=新意图();
意向。额外支付(“cto”,d.cto);
意向。额外(“颜色”,d.colore);
设置结果(结果正常,意图);
完成();
}
});
- 在A中:startActivityforResult(B)
- 在B中:startActivityForResult(C)
- 当C完成创建结果时,调用setResult并完成活动C
- 重写B中的onActivityResult,并从C+setResult中为A+完成活动B获取所需内容
- 重写A中的onActivityResult以获取从B返回的结果
如果您需要一些示例代码,或者仍然有问题,请发表评论 如果B打开C,那么您需要让C将额外的内容传递给B,并在B中调用activity result将信息传递给a。