我有四个活动(添加,查找,编辑和详细说明案例活动)。第一棵树用它们的意图来详细说明案例活动。如何知道他们中的哪一个启动了我的detailActivity以及如何将案例ID发送到detailActivity?
答案 0 :(得分:0)
是的,多个活动可以引用相同的活动。你的问题是如何知道三个活动中的哪一个打开了共同的活动(第四个)。
第一种情况:(从添加活动到详细案例活动)
当你从添加到详细信息开始一个意图时,只需添加一个额外的字符串,告诉其他活动你来自哪里,就像那样
如果要打开(详细信息活动)
,请在(任何活动)中添加此代码Intent intent=new Intent(add.this,detailcase.class);
//now add the extra
intent.putextra("from","any");
//edit: add your caseid here
intent.putextra("caseid",caseid);
//open the activity
startActivity(intent);
直到现在我们开始了一个意图,它将打开任何一个详细信息,我们添加了一个额外的包含一个键:来自"来自"和一个值:"任何"。
现在对所有其他活动做同样的事情
第二种情况:(从查找活动到详细案例活动)
如果要打开(详细信息活动)
,请在(查找活动)中添加此代码 Intent intent=new Intent(find.this,detailcase.class);
//now add the extra
intent.putextra("from","find");
//edit: add your caseid
intent.putextra("caseid",caseid);
//open the activity
startActivity(intent);
第三种情况:(从编辑活动到详细案例活动)
如果要打开(详细信息活动)
,请在(编辑活动)中添加此代码 Intent intent=new Intent(edit.this,detailcase.class);
//now add the extra
intent.putextra("from","edit");
//edit: add your caseid
intent.putextra("caseid",caseid);
//open the activity
startActivity(intent);
现在的诀窍是转到详细案例活动的Oncreate方法并添加此
private string comingfrom;
//edit: add these also
private int caseid;
private int caseid_any;
private int caseid_find;
private int caseid_edit;
//in on create method do this
comingfrom=getIntent().getStringExtra("from");
//edit: add this also
caseid=getIntent().getIntExtra("caseid",0);//0 is just a default value don't worry
//check now from where you came like that
if(comingfrom.equals("any")){
//then you came from any
//edit:
caseid_any=caseid; //this is caseid from any
}
if(coming from.equals("find")){
//you came from find
//edit:
caseid_find=caseid; //this is caseid from find
}
if(comingfrom.equals("edit")){
//you came from edit
//edit:
caseid_edit=caseid;//this is caseid from edit
}
我们所做的只是获得"来自"的价值。 key,我们将它存储在一个名为from的变量中,最后我们检查了这个值,现在我们知道了它们来自哪里。
修改强>
当您看到此评论
时,请再次检查代码段 //edit: ......
这意味着它被添加了。
这就是你如何从每个活动中传递caseid并知道它来自何处。