我的父类正确打开了一个子活动,但是当我尝试使用 this.finish() 或 getCurrentActivity().finish() 关闭这个子活动时,我得到一个强制关闭错误。我知道使用 getParent().finish() 将关闭父活动,因此,这意味着关闭子活动是可行的。
我搜索并来到getLocalActivityManager()。我相信这是关闭标签组中的子活动的关键。但是如何应用呢?我正在尝试,但没有结果。
这是我关闭子活动的方法。
public void onClick(View v) {
switch(v.getId()){
case R.id.back:
final LocalActivityManager manager = getLocalActivityManager();
manager.getCurrentActivity().finish();
break;
}
}
我的日志猫
12-02 21:08:15.494: E/AndroidRuntime(27064): FATAL EXCEPTION: main
12-02 21:08:15.494: E/AndroidRuntime(27064): java.lang.NullPointerException
12-02 21:08:15.494: E/AndroidRuntime(27064): at package.name.tabgroup.TabGroupActivity.finishFromChild(TabGroupActivity.java:49)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.app.Activity.finish(Activity.java:3259)
12-02 21:08:15.494: E/AndroidRuntime(27064): at ..itemlist.OdiamListDetails.onClick(OdiamListDetails.java:78)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.view.View.performClick(View.java:2538)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.view.View$PerformClick.run(View.java:9152)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.os.Handler.handleCallback(Handler.java:587)
12-02 21:08:15.494: E/AndroidRuntime(27064): at
android.os.Handler.dispatchMessage(Handler.java:92)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.os.Looper.loop(Looper.java:130)
12-02 21:08:15.494: E/AndroidRuntime(27064): at android.app.ActivityThread.main(ActivityThread.java:3687)
12-02 21:08:15.494: E/AndroidRuntime(27064): at java.lang.reflect.Method.invokeNative(Native Method)
12-02 21:08:15.494: E/AndroidRuntime(27064): at java.lang.reflect.Method.invoke(Method.java:507)
12-02 21:08:15.494: E/AndroidRuntime(27064): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
12-02 21:08:15.494: E/AndroidRuntime(27064): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
12-02 21:08:15.494: E/AndroidRuntime(27064): at dalvik.system.NativeStart.main(Native Method)