
我已经使用this材料设计示例创建了我的项目.我已经修改了代码,现在我现在有5个标签.现在,我已经创建了5个片段类并将其加载到视图寻呼机中.现在我想要的是,我想将所选的滑动菜单位置作为参数传递给我正在加载的片段.这里的问题是,我可以将参数(使用Bundle)传递给FragmentPagerAdapter,但它不会根据我传递的参数重新加载片段!问题是它甚至没有执行FragmentPagerAdapter中的页面加载部分!
如何根据传递的参数将片段重新加载到Taps上?
仅供参考,根据我传递的参数值,我正在做一些处理,我想在选项卡上显示已处理的片段页面.
请帮助这是我现在面临的系列问题!
提前致谢 :)
这是我的适配器代码
public class VIEwPagerAdapter1 extends FragmentPagerAdapter {final int PAGE_COUNT =6;private String Titles[] ;Bundle b2;public VIEwPagerAdapter1(FragmentManager fm, String[] Titles2, Bundle b) { super(fm); Titles=Titles2; this.b2=b;}@OverrIDepublic Fragment getItem(int position) { switch (position) { case 0: return new GrIDtableActivity(); case 1: Bundle selected1 = new Bundle(); selected1.putInt("selected",0); GrIDtableActivity grIDtableActivity = new GrIDtableActivity(); grIDtableActivity.setArguments(selected1); return grIDtableActivity; case 2: Bundle selected2 = new Bundle(); selected2.putInt("selected",0); DownTimetable downTimetable = new DownTimetable(); downTimetable.setArguments(selected2); return downTimetable; case 3: Bundle selected3 = new Bundle(); selected3.putInt("selected",0); GraphActivity graphActivity = new GraphActivity(); graphActivity.setArguments(selected3); return graphActivity; case 4: Bundle selected4 = new Bundle(); selected4.putInt("selected",0); barChartActivity barChartActivity = new barChartActivity(); barChartActivity.setArguments(selected4); return barChartActivity; case 5: Bundle selected5 = new Bundle(); selected5.putInt("selected",0); PIEChartActivity pIEChartActivity = new PIEChartActivity(); pIEChartActivity.setArguments(selected5); return pIEChartActivity; } return null;}public CharSequence getPageTitle(int position) { return Titles[position];}@OverrIDepublic int getCount() { return PAGE_COUNT;}}目前我正在这样!我在抽屉上有9个物品,创建了9个不同的适配器类!(真遗憾!:|)
public class SampleActivity extends ActionBaractivity {private DrawerLayout mDrawerLayout;private ActionbarDrawerToggle drawerToggle;private ListVIEw mDrawerList;VIEwPager pager1,pager2,pager3,pager4,pager5,pager6,pager7,pager8,pager9;TextVIEw tv;String proj ="Connect";private String Titles0[] = new String[]{"Home", "DEliVERY", "DOWNTIME", "Graph 1" , "Graph 2", "Graph 3"};//private Toolbar toolbar;SlIDingTabLayout slIDingTabLayout;DatabaseHelper db;linearLayout lvt;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_sample); db= new DatabaseHelper(getApplicationContext()); db.getReadableDatabase(); mDrawerLayout = (DrawerLayout) findVIEwByID(R.ID.drawer_layout); mDrawerList = (ListVIEw) findVIEwByID(R.ID.navdrawer); tv=(TextVIEw)findVIEwByID(R.ID.tv); // toolbar = (Toolbar) findVIEwByID(R.ID.toolbar); // if (toolbar != null) { // setSupportActionbar(toolbar); // toolbar.setNavigationIcon(R.drawable.ic_ab_drawer); // } pager1 = (VIEwPager) findVIEwByID(R.ID.vIEwpager1); pager2 = (VIEwPager) findVIEwByID(R.ID.vIEwpager2); pager3 = (VIEwPager) findVIEwByID(R.ID.vIEwpager3); pager4 = (VIEwPager) findVIEwByID(R.ID.vIEwpager4); pager5 = (VIEwPager) findVIEwByID(R.ID.vIEwpager5); pager6 = (VIEwPager) findVIEwByID(R.ID.vIEwpager6); pager7 = (VIEwPager) findVIEwByID(R.ID.vIEwpager7); pager8 = (VIEwPager) findVIEwByID(R.ID.vIEwpager8); pager9 = (VIEwPager) findVIEwByID(R.ID.vIEwpager9); slIDingTabLayout = (SlIDingTabLayout) findVIEwByID(R.ID.slIDing_tabs); lvt=(linearLayout)findVIEwByID(R.ID.lvt); final Bundle good = new Bundle(); good.putInt("kpr",0); pager1.setVisibility(VIEw.VISIBLE); pager1.setAdapter(new VIEwPagerAdapter1(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager1); slIDingTabLayout.setCustomTabcolorizer(new SlIDingTabLayout.Tabcolorizer() { @OverrIDe public int getIndicatorcolor(int position) { return color.WHITE; } }); //drawerToggle = new ActionbarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name, R.string.app_name); mDrawerLayout.setDrawerListener(drawerToggle); String[] values = new String[]{"OVERALL", "SPEED", "CONNECT", "ORBIT","SPEED INT","EXPRESS","ERROR CORRECTION","PRODEX","ORBIT AUDIT"}; final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, androID.R.ID.text1, values); mDrawerList.setAdapter(adapter); mDrawerList.setBackgroundcolor(getResources().getcolor(R.color.blue)); // toolbar.setBackgroundcolor(getResources().getcolor(R.color.blue)); slIDingTabLayout.setBackgroundcolor(getResources().getcolor(R.color.blue)); mDrawerList.setonItemClickListener(new AdapterVIEw.OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) { switch (position) { case 0: Toast.makeText(getApplicationContext(), "Overall Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("OVERALL"); good.putInt("kpr",0); pager1.setVisibility(VIEw.VISIBLE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager1.setAdapter(new VIEwPagerAdapter1(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager1); pager1.setCurrentItem(1); break; case 1: Toast.makeText(getApplicationContext(), "Speed Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); // good.putString("Project","SPEED"); good.putInt("kpr",1); tv.setText("SPEED"); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.VISIBLE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE);; pager2.setAdapter(new VIEwPagerAdapter2(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager2); pager2.setCurrentItem(1); break; case 2: Toast.makeText(getApplicationContext(), "Connect Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); // good.putString("Project","CONNECT"); good.putInt("kpr",2); tv.setText("CONNECT"); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.VISIBLE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager3.setAdapter(new VIEwPagerAdapter3(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager3); pager3.setCurrentItem(1); break; case 3: Toast.makeText(getApplicationContext(), "Orbit Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("ORBIT"); // good.putString("Project","ORBIT"); good.putInt("kpr",3); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.VISIBLE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager4.setAdapter(new VIEwPagerAdapter4(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager4); pager4.setCurrentItem(1); break; case 4: Toast.makeText(getApplicationContext(), "SPEED INT Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("SPEED INT"); // good.putString("Project","SPEEDINT"); good.putInt("kpr",4); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.VISIBLE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager5.setAdapter(new VIEwPagerAdapter5(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager5); pager5.setCurrentItem(1); break; case 5: Toast.makeText(getApplicationContext(), "EXPRESS Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("EXPRESS"); good.putInt("kpr",5); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.VISIBLE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager6.setAdapter(new VIEwPagerAdapter6(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager6); pager6.setCurrentItem(1); break; case 6: Toast.makeText(getApplicationContext(), "ERROR CORRECTION Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("ERROR CORRECTION"); good.putInt("kpr",6); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.VISIBLE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.GONE); pager7.setAdapter(new VIEwPagerAdapter7(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager7); pager7.setCurrentItem(1); break; case 7: Toast.makeText(getApplicationContext(), "PRODEX Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("PRODEX"); good.putInt("kpr",7); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.VISIBLE); pager9.setVisibility(VIEw.GONE); pager8.setAdapter(new VIEwPagerAdapter8(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager8); pager8.setCurrentItem(1); break; case 8: Toast.makeText(getApplicationContext(), "ORBIT AUDIT Selected", Toast.LENGTH_LONG).show(); mDrawerLayout.closeDrawer(Gravity.START); tv.setText("ORBIT AUDIT"); good.putInt("kpr",8); pager1.setVisibility(VIEw.GONE); pager2.setVisibility(VIEw.GONE); pager3.setVisibility(VIEw.GONE); pager4.setVisibility(VIEw.GONE); pager5.setVisibility(VIEw.GONE); pager6.setVisibility(VIEw.GONE); pager7.setVisibility(VIEw.GONE); pager8.setVisibility(VIEw.GONE); pager9.setVisibility(VIEw.VISIBLE); pager9.setAdapter(new VIEwPagerAdapter9(getSupportFragmentManager(), Titles0, good)); slIDingTabLayout.setVIEwPager(pager9); pager9.setCurrentItem(1); break; } } });}@OverrIDeprotected voID onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); drawerToggle.syncState();}@OverrIDepublic voID onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); drawerToggle.onConfigurationChanged(newConfig);}}
解决方法:
我想通了!一个简单的解决方案浪费了很多时间!我应该使用FragmentStatePagerAdapter而不是FragmentPagerAdapter! uff! :/
总结以上是内存溢出为你收集整理的android-FragmentPagerAdapter根据参数值在选项卡上重新加载已处理的片段全部内容,希望文章能够帮你解决android-FragmentPagerAdapter根据参数值在选项卡上重新加载已处理的片段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)