【问题标题】:Id of fragment in SlidingTabLayoutSlidingTabLayout 中的片段 ID
【发布时间】:2015-12-01 22:51:58
【问题描述】:

我的SlidingTabLayout 包含三个选项卡,它们使用相同的布局和完全相同的代码,除了几行...为了在每个选项卡中使用不同的 SQLite 数据库表,我将它们保留为单独的类。为了更清楚,我在public class ViewPagerAdapter extends FragmentStatePagerAdapter 中的public Fragment getItem() 方法看起来像这样:

@Override
public Fragment getItem(int position) {

    switch (position){
        case 0:
            Tab1 tab1 = new Tab1();
            return tab1;
        case 1:
            Tab2 tab2 = new Tab2();
            return tab2;
        case 2:
            Tab3 tab3 = new Tab3();
            return tab3;
    } 

我不喜欢这种方法,我想知道如何使用一个类实现相同的结果(使类的每个实例使用不同的数据库表)。我认为可以通过将诸如唯一 ID 之类的东西传递给每个实例来完成,这样它就知道要使用哪个表,但我不清楚在这种情况下如何传递类似的东西。

【问题讨论】:

    标签: android android-fragments android-tabs sliding pagerslidingtabstrip


    【解决方案1】:

    我认为使用捆绑包可能会对您有所帮助:

    @Override
    public Fragment getItem(int position) {
    
    switch (position){
        case 0:
            TabFragment tab1 = new TabFragment();
            Bundle args = new Bundle();
            args.putString("tableName", tableName1);
            tab1.setArguments(args);
            return tab1;
        case 1:
            TabFragment tab2 = new TabFragment();
            Bundle args = new Bundle();
            args.putString("tableName", tableName2);
            tab2.setArguments(args);
            return tab2;
        case 2:
            TabFragment tab3 = new TabFragment();
            Bundle args = new Bundle();
            args.putString("tableName", tableName3);
            tab3.setArguments(args);
            return tab3;
    } 
    

    【讨论】:

      猜你喜欢
      • 2015-08-11
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      相关资源
      最近更新 更多