我为导航栏编写了一个独立的自定义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,但未能找到解决方案。有什么建议吗?
答案 0 :(得分:1)
当您调用finish()
时,该活动从堆栈中的条目将被删除,因此我相信您无论如何也永远无法获得对该旧活动的引用!
在您的情况下,最好的部分是使用startActivityWithResult(..., ...)
进行呼叫,然后根据requestCode
呼叫完成,然后再获取旧活动的参考。