我的应用程序中有五个选项卡,分别是 A、B、C、D 和 E。我的问题是应用程序在将选项卡从 B 更改为任何其他选项卡并将设备旋转到横向模式或纵向模式时停止了。
错误日志是
08-22 11:27:22.835: E/AndroidRuntime(5992): 致命异常: main 08-22 11:27:22.835: E/AndroidRuntime(5992): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com. nv.netmdapp1/com.nv.netmdapp1.Home}:java.lang.NullPointerException 08-22 11:27:22.835:E/AndroidRuntime(5992):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 08 -22 11:27:22.835: E/AndroidRuntime(5992): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 android.app .ActivityThread.handleRelaunchActivity(ActivityThread.java:3351) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 android.app.ActivityThread.access$700(ActivityThread.java:123) 08-22 11:27: 22.835:E/AndroidRuntime(5992):在 android.app.ActivityThread$H。handleMessage(ActivityThread.java:1151) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 android.os.Handler.dispatchMessage(Handler.java:99) 08-22 11:27:22.835: E/ AndroidRuntime(5992): 在 android.os.Looper.loop(Looper.java:137) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 android.app.ActivityThread.main(ActivityThread.java:4424 ) 08-22 11:27:22.835: E/AndroidRuntime(5992): at java.lang.reflect.Method.invokeNative(Native Method) 08-22 11:27:22.835: E/AndroidRuntime(5992): at java. lang.reflect.Method.invoke(Method.java:511) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784 ) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 08-22 11:27:22.835: E/AndroidRuntime(5992 ):在 dalvik.system.NativeStart.main(Native Method) 08-22 11:27:22.835: E/AndroidRuntime(5992): 引起:java.lang.NullPointerException 08-22 11:27:22.835: E/AndroidRuntime(5992 ): 在 com.nv.netmdapp1.ScheduleDailyView.onActivityCreated(ScheduleDailyView.java:89) 08-22 11:27:22.835: E/AndroidRuntime(5992): 在 android.support.v4.app.Fragment.performActivityCreated(Fragment.爪哇:1468)
Java 代码如下。
public void onActivityCreated(Bundle savedInstanceState) { // TODO 自动生成的方法存根 super.onActivityCreated(savedInstanceState); dailyFragment = (SherlockFragment) Fragment.instantiate(appContext, AppointmentDailyView.class.getName(),arguments); weekFragment=(SherlockFragment) Fragment.instantiate(appContext, AppointmentWeeklyView.class.getName(),arguments);
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment lastFrag = getFragmentManager().findFragmentByTag("appointmentFrag");
if(lastFrag!=null)
ft.remove(lastFrag);
ft.replace(R.id.ll_appointment_layout, dailyFragment);
ft.commit();
}
@Override
public void onClick(View view)
{
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment lastFrag = getFragmentManager().findFragmentByTag("appointmentFrag");
if(lastFrag!=null)
ft.remove(lastFrag);
if(view==btnDaily)
ft.replace(R.id.ll_appointment_layout, dailyFragment);
else
ft.replace(R.id.ll_appointment_layout, weeklyFragment);
ft.commit();
}
单击选项卡 C 时执行此部分。但是在旋转设备控件时转到选项卡 B 的 onActivityCreated()。这里发生空指针异常行 ScheduleDailyView.java:89 与选项卡 B 相关联。但是在旋转设备控件时从选项卡转到C和D到这个文件。是什么原因?