2011-12-22 78 views
0

我有一個代表我的活動和有一個對象,看起來像你能完成()一個對象的活動嗎?

public class main extends Activity{ 
    //Does stuff 
    } 

    public class Object{ 
    //I want to call finish() here 
    } 

有沒有辦法做到這一點的一類?

+1

你的設計是有點奇怪。物體如何傳遞信號?到一個靜態字段?爲什麼與一個活動無關的對象試圖完成它? – 2011-12-22 02:26:40

回答

1

您可以讓Object有一個接受Activity參數的構造函數,並在實例化Object類時傳入活動實例。

實施例:

class MyObject { 
    private Activity act; 
    public Object(Activity act) { this.act = act;} 

    public doStuff() { 
     // do stuff 
     act.finish(); 
    } 
} 

//usage in some code inside your activity: 
MyObject obj = new MyObject(this); 
obj->doStuff(); 
+0

我不在活動中使用此對象,因此可能會很困難。我認爲解決這個問題最簡單的方法是使用while循環和if語句只在​​對象通過布爾標誌發送信號時調用finish。我希望有更好的選擇。 – eBehbahani 2011-12-22 01:56:56

+0

你的設計有點奇怪。物體如何傳遞信號?到一個靜態字段?爲什麼與一個活動無關的對象試圖完成它?如果對象位於活動內部,則可以在對象內調用'main.this.finish();'。 – 2011-12-22 02:11:23

+0

@Tomislav:第一和第二個問題:不需要信號。第三個問題:這是詢問OP的問題。第四:如果Object是活動的內部類,那麼可以這樣做,這不是OP顯示的內容。 – JRL 2011-12-22 02:23:28

相關問題