Android 跨actionBar选项卡重用片段

Android 跨actionBar选项卡重用片段,android,android-layout,android-fragments,tabs,Android,Android Layout,Android Fragments,Tabs,我对android编程相当陌生,我正在开发一款名为MyExpense的应用程序。此应用程序具有帐户摘要页面。此页面是一个多选项卡活动,显示用户创建的所有帐户的摘要 所有帐户摘要页面的布局都相同。因此,只有一个布局xml文件和一个Android片段类。我正在使用ActionBar+Android Fragment+View Pager组合来实现选项卡。 我在下面url的帮助下实现了这个多标签活动 在过去的几天里,我一直在研究如何在多个标签页上重复使用同一片段,但没有任何用处。我要么没有得到足够的

我对android编程相当陌生,我正在开发一款名为MyExpense的应用程序。此应用程序具有帐户摘要页面。此页面是一个多选项卡活动,显示用户创建的所有帐户的摘要

所有帐户摘要页面的布局都相同。因此,只有一个布局xml文件和一个Android片段类。我正在使用ActionBar+Android Fragment+View Pager组合来实现选项卡。 我在下面url的帮助下实现了这个多标签活动

在过去的几天里,我一直在研究如何在多个标签页上重复使用同一片段,但没有任何用处。我要么没有得到足够的资源,要么无法理解代码。然而,在最后我设法通过它,现在它运行正常

我想问大家,这是正确的做法吗?每次用户更改AccountSummaryTabActivity的onTabSelected方法中的选项卡时,我是否应该始终初始化适配器对象?我可以看出这一点的直接影响。当用户滑动每个选项卡时,应用程序会延迟,因为应用程序正在尝试在适配器对象中添加新片段

如果这不是正确的方法,你能建议什么是正确的方法吗?请借助代码进行解释

AccountSummaryTabAdapter.java

AccountSummaryTabActivity.java


提前谢谢

有人能回答这个问题吗。挣扎了相当长的一段时间。。但是没有用。您不需要在onTabSelected方法中执行所有适配器工作。请在oncreate中执行此操作。只需将设置viewpager当前项的最后一行写在这里。代码中不清楚获取意图的目的是什么。
public class AccountSummaryTabAdapter extends FragmentStatePagerAdapter {
     @Override
        public Fragment getItem(int arg0) {

            switch (arg0){
                default :{

                    AccountSummaryFragment fragment = new AccountSummaryFragment();
                    return fragment;
                }
            }
        }
}
public class AccountSummaryTabActivity extends FragmentActivity implements ActionBar.TabListener {

@Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        System.out.println("onTabSelected "+tab.getText());

        DBHelper dbHelper = new DBHelper(getApplicationContext());
        RuntimeExceptionDao<Account, Integer> simpleAccountDao = dbHelper.getSimpleAccountDataDao();
        List<Account> accountList = simpleAccountDao.queryForAll();

        Intent intent = getIntent();
        intent.putExtra("selectedAccNameTab", tab.getText());

        accSummaryAdapter = new AccountSummaryTabAdapter(getSupportFragmentManager());
        accSummaryAdapter.setCount(accountList.size());
        viewPager.setAdapter(accSummaryAdapter);

        viewPager.setCurrentItem(tab.getPosition());
    }
}