2013-08-17 45 views
1

通常的方式开始的活动是启动活动从Object

Intent intent = new Intent(this, SecondActivity.class); 
startActivity(intent); 

是否有从对象启动活动的方式?..喜欢

SecondActivity var = new SecondActivity(); 
var.start(); 

类似的东西..? !

+2

不需要,你需要引用'Context'并使用第一个'startActivity'方法。 – nhaarman

+0

你为什么要这样做? –

+0

您需要参考从其他人开始的活动。无论如何,你为什么要这样做? – mjosh

回答

2

语境只需传递给你的CustomObject,并用它启动活动:

public class CustomObject { 

    Context c; 
    // and some other fields here... 

    public CustomObject(Context c) { 
     this.c = c; 
    } 

    public void startActivity() { 

     Intent intent = new Intent(c, SecondActivity.class); 
     c.startActivity(intent); 
    } 

    // and some other methods here... 
} 

而且你的活动中创建对象:

CustomObject obj = new CustomObject(this); 
obj.startActivity(); 
0

我想你可能有这样的倒退。这听起来像你应该发送一个对象的引用,该对象包含从一个Activity到另一个Activity的偏好数据。您可以使用Intent类中的setXxxExtra()方法执行此操作。

要将数据从第二个活动发送回第一个活动,您应该先使用startActivityForResult()开始第二个活动,然后在主活动中覆盖onActivityResult()The Android developer pagesa very good example about how to do this