转载请注明出处:http://blog.youkuaiyun.com/droyon/article/details/20069259
不当之处,敬请指正。
在设置中从一个Fragment中启动另一个fragment。
以WifiSettings启动AdvanceWifiSettings为例:
log输出:
01-02 17:44:23.860: D/Settings(15608): startPreferencePanel fragmentClass is:com.android.settings.wifi.AdvancedWifiSettings,titleText is:null
01-02 17:44:23.860: D/Settings(15608): startWithFragment111 fragmentName is:com.android.settings.wifi.AdvancedWifiSettings,resultTo is:WifiSettings{4366ab38 #0 id=0x10202f6}
01-02 17:44:23.860: D/Settings(15608): Settings onBuildStartFragmentIntent fragmentName is:com.android.settings.wifi.AdvancedWifiSettings,title is:2131427929
01-02 17:44:23.900: D/Settings(15608): Settings onPause ...
01-02 17:44:23.910: D/Settings(15608): Settings onCreate ...savedInstanceState is:null
01-02 17:44:23.910: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.910: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.910: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.940: D/Settings(15608): onContentChanged
01-02 17:44:23.940: D/Settings(15608): onIsHidingHeaders
01-02 17:44:23.940: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.940: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.940: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.940: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.940: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.940: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.940: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.950: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.950: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.950: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.950: D/Settings(15608): switchToHeader fragmentName is:com.android.settings.wifi.AdvancedWifiSettings
01-02 17:44:23.950: D/Settings(15608): showBreadCrumbs title is:设置,shortTitle is:null
01-02 17:44:23.950: D/SubSettings(15608): Launching fragment com.android.settings.wifi.AdvancedWifiSettings
01-02 17:44:23.950: D/Settings(15608): showBreadCrumbs title is:高级 WLAN,shortTitle is:null
01-02 17:44:23.950: D/Settings(15608): showBreadCrumbs title is:高级 WLAN,shortTitle is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.950: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.950: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.950: D/Settings(15608): Settings onIsMultiPane
01-02 17:44:23.950: D/Settings(15608): Settings onCreate ...isMultiPane is:false
01-02 17:44:23.950: D/Settings(15608): onIsHidingHeaders
01-02 17:44:23.960: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:23.960: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:23.960: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:23.960: D/Settings(15608): Settings onCreate mParentHeader is:null
01-02 17:44:23.960: D/Settings(15608): Settings onIsMultiPane
01-02 17:44:24.000: D/Settings(15608): Settings onResume ...
01-02 17:44:24.000: D/Settings(15608): invalidateHeaders
01-02 17:44:24.010: D/Settings(15608): Settings onBuildHeaders ...
01-02 17:44:24.010: D/Settings(15608): onIsHidingHeaders
01-02 17:44:24.010: D/Settings(15608): Settings getStartingFragmentClass is:null
01-02 17:44:24.010: D/Settings(15608): Settings getStartingFragmentClass intentClass is:com.android.settings.SubSettings
01-02 17:44:24.010: D/Settings(15608): Settings getIntent startingFragment is:null
01-02 17:44:24.010: D/Settings(15608): onGetNewHeader
01-02 17:44:24.510: D/Settings(15608): onStop

本文详细介绍了如何在Android应用中从一个Fragment(如WifiSettings)启动另一个Fragment(如AdvancedWifiSettings),通过解析日志输出信息,展示了设置类在启动、创建、暂停、重建等过程中的关键操作。此教程适用于希望实现类似功能的开发者。
858

被折叠的 条评论
为什么被折叠?



