我有一个具有ImageView的活动,在ImageView下方有一个TabLayout。 TabLayout选项卡是片段。我遇到的问题是将对象从活动发送到不同的片段。我使用此解决方案Passing an Object from an Activity to a Fragment来帮助解决问题。直到Android Studio创建Fragments的新方法,为该Fragment创建一个Activity,然后在子目录中创建一个带有片段名称文件夹的ui文件夹(例如ui / examplefragement),并且在该文件夹中有两个类,一个是实际的Fragment类,第二个是该片段的ViewModel类。
问题在于为片段创建的活动具有onCreate方法。请参见下面的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_fragment);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, TestFragment.newInstance())
.commitNow();
}
}
如果您在上面的链接中看到了newInstance()方法,则可以在其中放置所需的对象类型。很好,直到上面代码片段中的相同方法希望传递对象实例(据我所知)。我不知道该片段活动类中是否包含对象实例,也无法在该片段活动类中使用该对象实例,这就是一切,阻止了我将对象从主要活动中获取到片段中。
感谢您的帮助。