在actionBar选项卡中重复使用片段

时间:2014-08-29 15:56:44

标签: android android-layout android-fragments tabs

我对Android编程很新,我正在开发一个名为MyExpense的应用程序。此应用有一个帐户摘要页面。此页面是一个多标签活动,显示用户创建的所有帐户的摘要。

所有帐户摘要页面的布局都相同。因此,只有一个布局xml文件和一个Android片段类。我正在使用ActionBar + Android Fragment + View Pager组合来实现Tabs。 我已经在下面的网址的帮助下实现了这个多标签活动 http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html

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

我想问你们所有人,这是正确的做法吗?每当用户更改onTabSelected AccountSummaryTabActivity方法中的选项卡时,我是否应始终初始化适配器对象?我可以看到这种直接影响。当用户通过每个选项卡滑动时应用程序滞后,因为应用程序尝试在适配器对象中添加新片段。

如果这不正确可以请您建议应该采用哪种方法? (请在代码的帮助下解释)

AccountSummaryTabAdapter.java

public class AccountSummaryTabAdapter extends FragmentStatePagerAdapter {
     @Override
        public Fragment getItem(int arg0) {

            switch (arg0){
                default :{

                    AccountSummaryFragment fragment = new AccountSummaryFragment();
                    return fragment;
                }
            }
        }
}

AccountSummaryTabActivity.java

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());
    }
}

提前致谢

0 个答案:

没有答案