片段onResume()被使用FragmentPagerAdapter时,不叫 [英] Fragment onResume() isn't called when using FragmentPagerAdapter
问题描述
我需要我的片段随时调用某一功能时,他们的活性片段,所以我把它放在onResume(),但它没有被调用。
I need my fragments to always call a certain function when they are the active fragment, so I put it in onResume(), but it isn't being called.
片段A
@Override
public void onResume(){
super.onResume();
Log.d("clear state", " "+clear);
if(clear == true)
{
restart();
clear = false;
calculate();
}
}
我用的FragmentPagerAdapter与ViewPager切换片段
I use a FragmentPagerAdapter with a ViewPager to switch fragments
public class ScoutingFragSingle extends FragmentPagerAdapter{
@Override
public Fragment getItem(int index) {
Bundle data = new Bundle();
switch(index){
case 0:
TeamsFragment teamsFragment = new TeamsFragment();
data.putInt("current_page", index+1);
teamsFragment.setArguments(data);
return teamsFragment;
case 1:
data.putInt("current_page", index+1);
data.putInt("matchId", matchNum);
aFragment.setArguments(data);
return aFragment;
所以,我怎么会做出片段致电其onResume()?
So how would I make the fragments call their onResume()?
推荐答案
我有同样的问题,前一段时间。
I had the same problem while ago.
创建一个新的接口,并通过您的两个片段
取值实现它:
Create a new interface and implement it by both of your Fragment
s:
public interface OnPageSelectedListener {
void onPageSelected();
}
在父活动实施 android.support.v4.view.ViewPager.OnPageChangeListener
和呼叫片段
这样的方法
In parent activity implement android.support.v4.view.ViewPager.OnPageChangeListener
and call Fragment
method like this:
@Override
public void onPageSelected(int i) {
OnPageSelectedListener fragment = (OnPageSelectedListener ((PlaceListPagerAdapter)pager.getAdapter()).getFragment(i);
fragment.onPageSelected();
}
PS:新界面的名称和它的方法是有点混乱,所以一定要小心,或更改
PS: Name of the new interface and its method is a bit confusing, so be careful or change it.
这篇关于片段onResume()被使用FragmentPagerAdapter时,不叫的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!