在學習《Android編程權威指南》P124頁的時候,遇到了這樣的代碼:
引起了我的疑問if的判斷條件是(fragment==null),那執行完上一句 Fragment Fragment=fm.findFragmentById(R.id.fragmentContainer); fragment的值到底是什么呢?通過debug,我發現其實執行完 Fragment fragment=fm.findFragmentById(R.id.fragmentContainer);fragment的值就是null的,為什么會這樣呢?參考谷歌的這個方法官方文檔,有這樣的兩句話:Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction. .......... Returns:The fragment if found or null otherwise.(因為我們沒有在這個Activity的布局XML文件里面定義fragment,也沒有用FragmentManager把fragment添加進來,所以這個方法是找不到對應的fragment,返回值自然就是null了)