SlidingTabLayout中片段的ID

时间:2015-12-01 22:51:58

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

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

@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的内容来完成,因此它知道要使用哪个表,但我不清楚如何在这种情况下传递类似的内容。

1 个答案:

答案 0 :(得分: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;
}