11:27:54.215: E/AndroidRuntime(3732): java.lang.NullPointerException
11:27:54.215: E/AndroidRuntime(3732): at android.widget.Toast.<init>(Toast.java:92)
11:27:54.215: E/AndroidRuntime(3732): at android.widget.Toast.makeText(Toast.java:238)
当多个Fragment频繁切换时Toast会出现上述空指针异常,追其原因是Fragment add()或replace()时机问题,解决方法:
1.fragment提交时使用commitAllowingStateLoss()函数可以解决空指针问题
2.延时500毫秒等界面加载完再进行逻辑处理, 2.判断项目中仿Tabhost自定义的Fragment对象:MyFragment不为空或已经被添加了(isAdded() / isFinishing())
if(MyFragment.this!=null&&MyFragment.this.isAdded()){
Toast.makeText(getActivity(), "myToast!", Toast.LENGTH_SHORT).show();
}