将多个活动的数据发送到一个活动?

时间:2013-11-26 04:09:36

标签: android

我希望将数据发送到两个活动中的一个活动...例如A,B和C,当活动A将数据发送到活动B时,活动C将数据发送到活动B活动B如何知道来自A的数据或C. 例如:

//this Activity A

Intent i=new Intent(this,B.class);

//send data by i such as id

//this Activity C

Intent in=new Intent(this,B.class);

//send data by in Intent such as id

//send data by in Intent such as email

//in activity B

Bundle val =getIntent().getExtras();

        if(val!=null)
            int id=val.getInt("id");
            String s=val.getString("email");
// to show

        Toast.makText(Main.this, id, Toast.LENGTH_LONG).show();

        Toast.makeText(Main.this, s, Toast.LENGTH_LONG).show();

3 个答案:

答案 0 :(得分:2)

如何添加一个额外的新内容,以使您获得之前的活动,如:

i.putExtra("Activity","A");

同样适用于活动C:

i.putExtra("Activity, "C");

和活动B:

Bundle val=getIntent().getExtras();

if(val!=null)
    int id=val.getInt(Key);
    String s=val.getString("email");
    String activity = val.getString("Activity");

然后使用Activity变量来识别宝贵的Acitvity

希望这会帮助你。

之前检查此question

答案 1 :(得分:2)

我也遇到了同样的问题然后我通过添加FLAGS来解决它,就像数据来自哪个活动一样。例如: -

//this Activity A
Intent i=new Intent(this,B.class);
i.putExtra(key, value);
i.putExtra("from_which", "from_a");

//this Activity C
Intent i=new Intent(this,B.class);
i.putExtra(key, value);
i.putExtra("from_which", "from_c");

// in activity B
Intent intent = getIntent()
String from_which = intent.getStringExtra("from_which");

if(from_which.equals("from_a")){
    // from A
}
else if(from_which.equals("from_c")){
    // from C
}

答案 2 :(得分:0)

您可以使用全局类并使用getter setter保存值。在activity上使用对象获取值。