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;
}
我的 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;
}