这就是Main Activity的样子。通过单击主要活动中的每个卡片视图,它会将我带到活动二,其中包含带有滑动选项卡布局和回收器视图的片段。我遇到的问题是试图将每个卡片视图引导到第二个活动中自己的特定选项卡,而不是第一个活动的默认选项卡。我尝试在线查看解决方案,但没有太大帮助。任何形式的帮助将不胜感激,在此先感谢。
只是澄清一下,从第一个主要活动到第二个活动的意图调用是通过适配器完成的。
这是主要活动
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private CoverAdapter adapter;
private List<Covers> coversList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
initCollapsingToolbar();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
coversList = new ArrayList<>();
adapter = new CoverAdapter(this, coversList);
RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.addItemDecoration(new GridSpacingItemDecoration(2, dpToPx(10), true));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(adapter);
prepareCovers();
try {
Glide.with(this).load(R.drawable.cover).into((ImageView) findViewById(R.id.backdrop));
} catch (Exception e) {
e.printStackTrace();
}
}
private void prepareCovers() {
int[] covers = new int[]{
R.drawable.school};
Covers academiaCover = new Covers("Universities",covers[0]);
coversList.add(academiaCover);
academiaCover = new Covers("Colleges", covers[0]);
coversList.add(academiaCover);
academiaCover = new Covers("School", covers[0]);
coversList.add(academiaCover);
academiaCover = new Covers("Others", covers[0]);
coversList.add(academiaCover);
adapter.notifyDataSetChanged();
}
private void initCollapsingToolbar() {
final CollapsingToolbarLayout collapsingToolbar =
(CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbar.setTitle(" ");
AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar);
appBarLayout.setExpanded(true);
// hiding & showing the title when toolbar expanded & collapsed
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
boolean isShow = false;
int scrollRange = -1;
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if (scrollRange == -1) {
scrollRange = appBarLayout.getTotalScrollRange();
}
if (scrollRange + verticalOffset == 0) {
collapsingToolbar.setTitle(getString(R.string.app_name));
isShow = true;
} else if (isShow) {
collapsingToolbar.setTitle(" ");
isShow = false;
}
}
});
}
这是第二个活动
public class ActivityTwo extends AppCompatActivity {
private Toolbar toolbar;
private ViewPager mPager;
private SlidingTabLayout mTabs;
private static final int UNIVERSITES = 0;
private static final int COLLEGES = 1;
private static final int SCHOOLS = 2;
private static final int OTHERS = 3;
public static ProgressBar spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar); // Setting toolbar as the ActionBar with setSupportActionBar() call
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setTitleTextColor(Color.WHITE);
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
mTabs.setViewPager(mPager);
spinner = (ProgressBar)findViewById(R.id.progress_bar);
spinner.setVisibility(View.GONE);
}
class MyPagerAdapter extends FragmentPagerAdapter {
String[] tabs;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
tabs=getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
Fragment myFragment = null;
switch (position){
case UNIVERSITES:
myFragment = FragmentUniversities.newInstance("","");
break;
case COLLEGES:
myFragment = FragmentColleges.newInstance("","");
break;
case SCHOOLS:
myFragment = FragmentSchool.newInstance("","");
break;
case OTHERS:
myFragment = FragmentOthers.newInstance("","");
break;
}
return myFragment;
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
@Override
public int getCount() {
return 4;
}
}