Android,我该如何动态地添加带有来自另一个片段的数据的标签

时间:2018-11-13 12:24:47

标签: android android-fragments kotlin android-tabhost

对于学校,我必须制作一个具有一个活动和多个片段的android项目。在我的项目中,可以在MainFragment中添加来自另一个片段的数据的新遭遇(= new选项卡)。或者至少应该如此。

我现在面临的问题是,当我想回到带有标签的MainFragment时,我必须重新制作我的片段(由于android破坏了片段)并切换到它。但是在切换到片段之前,我想使用新数据向TabHost添加一个新标签。 但是,此TabHost为null。

我真的不知道如何从另一个片段为我的TabHost创建新标签。我希望有人能帮助我。

单击“浮动操作”按钮时,我将数据(此处为列表)提供给FragmentSwitcher(我的mainActivity包含此接口)

fab_save.setOnClickListener {
    fragmentSwitcher!!.showMainFragmentWithNewTab(playableCharacters)
}

在我的mainActivity(FragmentSwitcher)中,我用选项卡加载MainFragment,想要添加一个带有数据的新选项卡,然后显示我的片段

override fun showMainFragmentWithNewTab(playableCharacters: ArrayList<PlayableCharacter>) {
    val mainFragment = supportFragmentManager.findFragmentByTag("MainFragment")!! as MainFragment
    mainFragment.addTab(playableCharacters)
    switchFragment(mainFragment)
}

在MainFragment中,我有一种制表符的方法。 tab1是我要填充可玩角色列表的recyclerview的ID

fun addTab(playableCharacters: ArrayList<PlayableCharacter>) {
    spec.setIndicator("Encounter ${++teller}")
    tabHost.addTab(spec)
    tab1.layoutManager = LinearLayoutManager(context, LinearLayout.VERTICAL, false)
    tab1.adapter = EncounterAdapter(playableCharacters)
}

我真的希望有人能帮助我,因为我在这个问题上陷于困境。

如果您想更好地查看我的代码,请参见my github link和源代码。

0 个答案:

没有答案