Вот как выглядит Main Activity. Нажав на каждый вид карты в основном действии, он доведёт меня до Activity two, который содержит фрагменты со скользящей компоновкой вкладок и recyclerview. Проблема, с которой я сталкиваюсь, заключается в том, чтобы перенести каждый вид карты на свои собственные вкладки во втором действии, а не на вкладку по умолчанию, которая является первой. Я пробовал искать решения в Интернете, но это не помогло. Любая помощь была бы высоко оценена, спасибо заранее.Разработка Android: руководство к определенным вкладкам в фрагменте
Просто уточните, что вызов вызова от первого основного действия ко второму действию осуществляется через адаптер.
Это Основная деятельность
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;
}
}
Большое вам спасибо, что сработало для меня. Однако, если бы я захотел применить тот же процесс к другим вкладкам, например, если в школу щелкнул, он должен забрать меня в школу. –
Если вы хотите школу, напишите намерение.putExtra («позиция», 2); и если вы хотите свою последнюю вкладку, напишите aim.putExtra («позиция», 3); – Drv
Если бы мой ответ был полезным, отметьте его как принятый. – Drv