我对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());
}
}
提前致谢