2012-11-09 26 views
2

我想知道如果我把我的活動通過其他類像這樣:Android的覆蓋方法與活動參數

public class GateActivity extends MapActivity { 

private Presenter assistant = null; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    assistant = new Presenter(this); 
// ... 
} 

而這個其他類:

public class Presenter { 
private android.app.Activity act; 

public Presenter(android.app.Activity a){ 
    this.act = a; 
    // ... 
} 

如果它是可能的「演示者」類創建一個這樣的意圖:

intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
intent.setType("image/*"); 
act.startActivityForResult(intent, 1); 

AND創建/處理它的「Override onActivit yResult(...)」方法:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    switch (requestCode){ 
    case 1: // ... 
} 

提前感謝! ;)

回答

0

是的,這應該工作。

當被叫活動已經完成,GateActivity.onActivityResult()將被調用。

+0

大衛你好!但是我想知道如何處理Presenter類**中的活動結果**,因爲在我的體系結構中,GateActivity類只將活動傳遞給Presenter並且不再執行任何操作。 – David

+0

你不能。直。你就必須有'GateActivity.onActivityResult()'委託調用'Presenter.onActivityResult()' –

+0

聽起來像是你的架構是有點破。你爲什麼不''Presenter'繼承'GateActivity'? –