0

我为导航栏编写了一个独立的自定义 OnClickListener 类(不是成员类)。请参阅下面的代码。

class MyClickHandler implements OnClickListener {

@Override
public void onClick(View view) {
    Intent intent;
    Context ctx = view.getContext();
    int id = view.getId();
    switch(id){

    case R.id.app_home_id:
        intent = new Intent(ctx, FormEngineMainApp.class);
        ctx.startActivity(intent);
        break;
    case R.id.app_tasklist_id:
        intent = new Intent(ctx, WorkList.class);
        ctx.startActivity(intent);
        break;
    //more cases...

    }

}

}

每个按钮都会导致不同的活动。我倾向于在调用后完成当前活动startActivity(intent);,但我需要当前活动实例来调用finish()。我不知道如何获取当前的活动实例。唯一可能有帮助的是参数view,但我在 Android Developers 中查看了 View 的参考,但没有找到解决方案。有什么建议么?

4

1 回答 1

1

当您调用 afinish()时,从堆栈中删除该活动的条目,因此我相信您永远无法获得对该旧活动的引用!

在您的情况下,最好的部分是调用 usingstartActivityWithResult(..., ...)然后根据requestCode调用完成,然后再获取旧活动的参考。

于 2012-06-05T17:49:20.963 回答