我曾经有3个活动,有3个布局。
1. HomeActivity.java (activity_home.xml)
2. HelpActivity.java (activity_help.xml)
3. SettingsActivity.java (activity_settings.xml)
每当我必须打开其他活动时,我都会使用overridePendingIntent
使用动画幻灯片插入意图。通过这种方式,HomeActivity的所有变量都保留在其中,而HelpActivity的变量/方法本身也与SettingsActivity相同。我在其中使用了onCreate()
来执行某些活动特定代码。并且,来自android:onClick="fetchSarcasm"
的{{1}}正在activity_home.xml
中调用指定的方法。所以,没有冲突。所有正常的事情,发生在AndroidProject中,有3个活动,并且使用意图相互切换,正如我想要的那样发生。
但是现在,我想迁移到ViewPager而不是幻灯片进入的意图转换。这样,只有一个Activity具有ViewPager的XML。此ViewPager及其FragmentPagerAdapter从3个类中获取扩展HomeActivity.java
的页面,其中包含相对的XML布局。
我想问一下:我在哪里为Fragment
,onCreate()
和layoutView's onClick=""
编写页面特定代码。因为,扩展onChangeListeners
的3个类没有任何Fragment
或Context
,并且它们在不同的布局中不响应findViewById()
。
我是否需要将三个活动的所有代码混合到一个包含ViewPager的活动中?如果是这样,这会使ViewPager活动非常繁重。并且,在每个代码点编写android:onClick="method"
对所有页面来说都是荒谬的。第3页中的任何复选框(视图)在其他页面中变为空。
我知道这可能是一个愚蠢的问题。我花了将近4天的时间来尝试实现某些目标,但我做不到。另外,这只是我在android中的第二个月,所以我是新手。我不使用Action Bars,Tabbed Bars或Navigation Drawers。
如果您想要更多内容,我也可以在SO聊天中使用。
我只是想知道如何合并我在不使用ViewPager时所做的所有工作。
答案 0 :(得分:1)
如果您只为每个Fragment
阅读一次“偏好设置”,则可以将之前的Activity.onCreate()
逻辑移至每个Fragment
s onViewCreated()
或{{1 }}。在那里阅读您的共享偏好设置并相应地设置您的复选框。
onCreateView()
内的{p> Fragment
不必在每次更改页面时重新创建。您可以使用ViewPager
更改一次Fragment
实例化的数量。