gpt4 book ai didi

android - 如何刷新 viewpager 中的 fragment ?

转载 作者:行者123 更新时间:2023-11-29 21:23:12 32 4
gpt4 key购买 nike

我知道这个问题已经有一些问题了。但我真的是 Android 新手,尤其是 FragmentsViewpager。请对我充满热情。我没有找到适合我的代码的答案。

我不知道如何刷新 fragment 或在它再次“Activity ”时重新加载它。

TabsPagerAdapter.java:

public class TabsPagerAdapter extends FragmentPagerAdapter{


public TabsPagerAdapter(FragmentManager fm){
super(fm);
}

@Override
public Fragment getItem(int index) {

switch (index) {
case 0:

return new KFZFragment();
case 1:

return new LogFragment();
case 2:

return new TrackFragment();
}

return null;
}

@Override
public int getCount() {
// get item count - equal to number of tabs
return 3;
}

}

我有这 3 个 fragment (KFZFragment、LogFragment、TrackFragment),在 TrackFragment 上我计算了一些数据,这些数据应该显示在 的 ListView 中日志 fragment 。但是当我更改为 LogFragment 时,它不是最新数据。所以它不会刷新。

现在我应该如何修改我的代码以在“Activity ”时刷新 fragment ?

MainActivityFragment.java:

public class MainActivityFragment extends FragmentActivity implements ActionBar.TabListener{

private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
List<Fragment> fragments;

private String[] tabs = { "KFZ", "Fahrten Log", "Kosten Track" };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_fragment);

// Initilization
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, KFZFragment.class.getName(),savedInstanceState));
fragments.add(Fragment.instantiate(this, LogFragment.class.getName(),savedInstanceState));

viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);

}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}

@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
viewPager.setCurrentItem(tab.getPosition());

}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {


}
return super.onKeyDown(keyCode, event);
}

}

请帮帮我。

最佳答案

在您的每个 KFZFragmentLogFragmentTrackFragment 中,您应该能够覆盖 onResume您的 fragment 类并将必要的刷新/重新加载代码放在那里。

关于android - 如何刷新 viewpager 中的 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495112/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com