将来自多个活动的消息传递给主要活动
问题描述:
要解决我的问题非常困难,将来自多个活动的消息传递给主要活动
我有一个活动活动1从这个我可以打开的三种活动活动2,活动3和活动4,其中我想的结果来自活动一个3 。在这些活动中,我可以创建一个新的意向来打开任何其他活动,然后在当前活动上调用finish()
。
我的代码为工作时我打开活动3从活动1,然后按下按钮以完成活动3它完美地发送消息。我的问题在于发言权开口活动2从活动1然后从活动2开口活动3(依次上活动2主叫finish()
),然后在活动3按下按钮并发送同样的信息到活动1。目前发送的结果代码是0,当我试图让它发送结果代码'726'时。
总之我希望能够从意图从其他活动的未知水平创造了一个活动发送消息,但该消息一直追溯到同一个最低水平的活动如果是有道理的。
我很抱歉,如果这是很难理解,我希望有人能帮助我
答
我讨厌回答我的问题,但我想通了,无论如何,任何人寻找答案:
从主要活动
public void onClick2Activity(View v){
Intent i = new Intent();
i.setClass(1Activity.this, 2Activity.class);
startActivityForResult(i, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==726){
Bundle bundle = data.getExtras();
int string = bundle.getInt("test");
Log.v("Extra", "" + string);
Toast.makeText(this, "Pass", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(this, "Fail", Toast.LENGTH_LONG).show();
}
}
从2Activity:
public void onClick3Activity(View v){
Intent i = new Intent();
i.setClass(2Activity.this, 3Activity.class);
startActivityForResult(i, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==726){
Intent in = new Intent();
in.putExtra("test", "test");
setResult(726,in);
finish();
}
else{
Log.v("Failed", "Failed");
}
}
来自3Activity:
public void onItemClick(){
Intent in = new Intent();
weaponID = position + 1;
in.putExtra("test", "test");
setResult(726,in);
finish();
}
+0
回答你自己的问题绝对没有错!如果你自己解决,你甚至会受到鼓励。 – 2011-03-02 12:37:56
这是您描述的活动[计划](http://i.imgur.com/YIh9f.png)吗? – 2011-03-02 12:38:27