SlidingTabLayout 中片段的 ID

Id of fragment in SlidingTabLayout

我的 SlidingTabLayout 包含三个选项卡,除了几行之外,它们使用相同的布局和完全相同的代码...为了在每个选项卡中使用不同的 SQLite 数据库 table,我将它们保留为分开 classes。为了更清楚,我在 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;
    } 

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

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

@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;
}