2013-08-17 75 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