如何通过此活动拥有的视图获取活动?

时间:2012-06-05 17:39:37

标签: android view android-activity activity-finish

我为导航栏编写了一个独立的自定义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开发者中的View of View,但未能找到解决方案。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

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