java如何使用viewpager启动新活动或刷新当前活动
我有一个片段的viewpager。我想开始一个新的活动,或者用它上面的标签刷新当前的活动
现在,我用这个打开名为“Sunday”和“Monday”的片段,但我想添加另一个选项卡,当用户选择这个选项卡时,要么将当前活动刷新为应用程序首次打开时的状态,要么打开新活动
这是我的密码
public class MainActivity extends AppCompatActivity {
//RSS link
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new sectionB(), "SEC B");
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//here yourDesiredPositionNumber is a int...like 0,1,2,3..according you
if (tab.getPosition() == 0) {
Intent i1 = new Intent(MainActivity.this, SagarActivity.class);
startActivity(i1);
//here you can do your refresh of start new activity
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
# 1 楼答案
刷新
如果要刷新整个活动,可以调用活动的
recreate()
方法在你的例子中,你处于一个片段中,所以你需要先获得活动,这样你就可以像
getActivity().recreate()
开始新的活动
要打开一个新活动,可以使用
startActivity()
我相信你的案子你可以这样做
现在就你而言
您需要像这样在TabLayout上设置侦听器,然后调用上面的方法
另一种方式是
你也可以像这样在ViewPager上设置Listener