лучший способ - сделать «фальшивый слайд» или «фиктивный слайд» в качестве последнего слайда (без содержимого), чтобы при переходе по «фальшивому слайду» он переходил к другому виду деятельности
сначала сделайте свой «поддельный слайд», добавив его в класс, который расширяет PagerAdapter:
@Override
public int getCount() {
return s1.length+1;//in your example it turns to be 4
}
и поместите все настройки просмотра в условие:
@Override
public Object instantiateItem(@NonNull final ViewGroup container, final int position) {
layoutInflater =(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View view=layoutInflater.inflate(R.layout.slide_layout,container,false);
imageView.setImageResource(slide_images[position]);
if(position<=s1.length-1) {
slideHeading.setText(slide_headings[position]);
slideDes.setText(slide_descrpition [position]);
but.setText(s1 [position]);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(position==0) {
Toast.makeText(context, "delux", Toast.LENGTH_SHORT).show();
}
else if (position==1) {
Toast.makeText(context, "semi-delux", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(context, "Dormitory", Toast.LENGTH_SHORT).show();
}
}
});
}
container.addView(view);
return view;
}
и, наконец, добавьтеэтот слушатель в вашем классе RoomSelect:
mslidViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
sum=0;
if(i==3)//same as the the amount of your slides {
mslidViewPager.setCurrentItem(2);//so when you turn back to MyRoomSelect activity you face your last slide
startActivity(new Intent(MyRoomSelectActivity.this, NextActivity.class));
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
Ps рассмотрите возможность использования arrayList вместо string [] и передачи arrayList в качестве конструктора ваших адаптеров. надеюсь, это поможет:)