Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击ViewPager中的特定页面后,如何跳转到其他活动?_Java_Android_Android Layout - Fatal编程技术网

Java 单击ViewPager中的特定页面后,如何跳转到其他活动?

Java 单击ViewPager中的特定页面后,如何跳转到其他活动?,java,android,android-layout,Java,Android,Android Layout,当我跳转到其他活动时,我无法转到ViewPager中的下一个活动 我在第一个活动中创建了幻灯片图像;它有五个图像。在我将最后一张图片滑到第五张之后,它应该转到下一个活动,比如-activity_next.xml 我的房间选择类: mslidViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int

当我跳转到其他活动时,我无法转到ViewPager中的下一个活动 我在第一个活动中创建了幻灯片图像;它有五个图像。在我将最后一张图片滑到第五张之后,它应该转到下一个活动,比如-activity_next.xml

我的房间选择类:

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))
            }

        }

    })