我对Android开发很新,我从一个简单的项目开始学习如何处理大部分基本UI。
我已经使用了ActionBarSherlock和ViewPageIndicator,总体而言我创建的简单应用程序正在运行,但我仍然有一些奇怪的问题。让我来形容一下:
我认为我遇到了所有这些问题,因为我在代码中的某个地方出了问题。请帮助我理解我的问题,如果可以的话,请指出一些好的做法或地方,我无法阅读并理解我做错了什么,以及如何以正确的方式做到。
我将相关代码上传到此处:https://code.google.com/p/mich-android-testapp/source/browse/trunk/TestApp/
我感谢你们的任何帮助!
答案 0 :(得分:3)
您的代码有几个问题,很可能是您列出的问题的根源。
首先,在正常活动(MainActivity)中声明一个静态片段(一个在xml布局中直接声明的片段),您稍后会尝试在OnClickListener
的基类中替换它。这不会很好,因为您不应该使用静态片段进行事务处理。相反,如果你要对它们采取行动,你应该放置一个容器布局,以编程方式添加片段(作为旁注,你应该尝试使用通用id作为替换事务,否则如果你忘记使用相同的完全id在BaseActivity子类中,你会遇到麻烦)。
第二个主要问题是您存储来自ViewPager
的片段,并假设这些片段始终是您将使用的片段。当ViewPager
将自动重新创建片段时,配置更改后这将失败。
如果您要使用嵌套片段,则必须将getChildFragmentManager()
传递给FragmentPagerAdapter
的{{1}}。
此外,不要使用普通方法将数据传递给片段,因为数据将无法在配置更改中存活(我指的是BasePagerFragment
方法)。请改用setPage()
。
解决此问题后,请查看错误是否仍然存在。