【问题标题】:Android Override methods inside classes with Activity parameter带有Activity参数的类中的Android Override方法
【发布时间】:2012-10-29 19:34:53
【问题描述】:

我想知道我是否像这样将我的活动通过其他课程:

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;
    // ...
}

如果可以在“Presenter”类中创建这样的意图:

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

并创建/处理其“Override onActivityResult(...)”方法:

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

提前致谢! ;)

【问题讨论】:

    标签: android methods android-activity overriding


    【解决方案1】:

    是的,应该可以。

    当被调用的活动完成后,GateActivity.onActivityResult() 将被调用。

    【讨论】:

    • 嗨大卫!但我想知道如何在Presenter 类中 处理活动结果,因为在我的架构中,GateActivity 类只将活动传递给 Presenter,不再执行。
    • 你不能。直接地。您必须让 GateActivity.onActivityResult() 将呼叫委托给 Presenter.onActivityResult()
    • 听起来你的架构有点坏了。为什么不让Presenter 继承自GateActivity
    • 嗨大卫!我最终学位项目的老师建立了这个架构......无论如何,谢谢! ;)
    猜你喜欢
    • 2021-03-27
    • 2015-02-27
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多