Java 单击ViewPager中的特定页面后,如何跳转到其他活动?
当我跳转到其他活动时,我无法转到ViewPager中的下一个活动 我在第一个活动中创建了幻灯片图像;它有五个图像。在我将最后一张图片滑到第五张之后,它应该转到下一个活动,比如-activity_next.xml 我的房间选择类:Java 单击ViewPager中的特定页面后,如何跳转到其他活动?,java,android,android-layout,Java,Android,Android Layout,当我跳转到其他活动时,我无法转到ViewPager中的下一个活动 我在第一个活动中创建了幻灯片图像;它有五个图像。在我将最后一张图片滑到第五张之后,它应该转到下一个活动,比如-activity_next.xml 我的房间选择类: mslidViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int
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) {
}
});
我的幻灯片活动课
最好的方法是制作一张假幻灯片或一张假幻灯片作为您的最后一张幻灯片,不包含任何内容,这样当您在假幻灯片上滑动时,它将跳转到另一个活动 首先,将此项添加到扩展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;
}
P.S.考虑使用ARARYLIST而不是String [],并将ARAYLIST传递给适配器构造函数。 希望这有帮助:
在适配器中执行以下操作:override fun instantiateItem(container: ViewGroup, position: Int): Any {
val inflater = LayoutInflater.from(context)
val itemView = context.layoutInflater.inflate(R.layout.row, container, false) as ViewGroup
val heading = itemView.findViewById(R.id.textView) as TextView
if (position < list.size)
heading.setText(list[position])
container.addView(itemView)
return itemView
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as LinearLayout)
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view === `object`
}
override fun getCount(): Int {
return list.size+1
}
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) {
}
});
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val inflater = LayoutInflater.from(context)
val itemView = context.layoutInflater.inflate(R.layout.row, container, false) as ViewGroup
val heading = itemView.findViewById(R.id.textView) as TextView
if (position < list.size)
heading.setText(list[position])
container.addView(itemView)
return itemView
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as LinearLayout)
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view === `object`
}
override fun getCount(): Int {
return list.size+1
}
viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(
position: Int,
positionOffset: Float,
positionOffsetPixels: Int
) {
}
override fun onPageSelected(position: Int) {
if (position == list.size) {
startActivity(Intent(this@MainActivity, SecondActivity::class.java))
}
}
})