Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Android 如何获取viewpager最后一页的位置?_Android_Android Layout_Android Viewpager - Fatal编程技术网

Android 如何获取viewpager最后一页的位置?

Android 如何获取viewpager最后一页的位置?,android,android-layout,android-viewpager,Android,Android Layout,Android Viewpager,我想将另一个布局充气到最后一页有viewpager的活动。这就像一个问答游戏,在回答完所有问题后(问答集中的问题和答案位于viewpager中膨胀的布局中),我想在viewpager的最后部分膨胀另一个布局,并显示一条消息,如“感谢您参加问答游戏!”,以便进行调试,我尝试过在公共对象实例化项(视图容器,int位置)方法上编写一些条件,如下所示 if (position == getCount()){ //get count returns the number of pagesize //d

我想将另一个布局充气到最后一页有viewpager的活动。这就像一个问答游戏,在回答完所有问题后(问答集中的问题和答案位于viewpager中膨胀的布局中),我想在viewpager的最后部分膨胀另一个布局,并显示一条消息,如“感谢您参加问答游戏!”,以便进行调试,我尝试过在
公共对象实例化项(视图容器,int位置)
方法上编写一些条件,如下所示

if (position == getCount()){ //get count returns the number of pagesize
  //do some layout inflating here
}
为了调试,我使用Toast消息来显示当前页面,但如果我在最后一页上滑动viewpager,它不会显示任何内容,那么正确的解决方法是什么

更新代码

public Object instantiateItem(View container, int position) {
        // TODO Auto-generated method stub
        ViewPager mPager = (ViewPager) survey.findViewById(R.id.pagersurvey);


        Toast.makeText(survey, "Page " + mPager.getCurrentItem(), Toast.LENGTH_SHORT).show();
        LayoutInflater inflater = (LayoutInflater) survey
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layout = inflater.inflate(R.layout.view_survey, null);
        ((ViewPager) container).addView(layout, 0);
        return layout;
}

我希望每张幻灯片/页面都显示其当前页面的toast消息,但viewpager的最后一页不显示任何toast消息。

创建一个侦听器并将其设置在您的viewpager上:

public Object instantiateItem(View container, int position) {
        // TODO Auto-generated method stub
        Toast.makeText(survey, "Page " + position, Toast.LENGTH_SHORT).show();
        LayoutInflater inflater = (LayoutInflater) survey
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = R.layout.normalView;
        if(position==getCount)
            resID = R.layout.SpecificView;

        View view = inflater.inflate(resId, null);

        ((ViewPager) collection).addView(view, 0);

        return view;
}
 /**
     * Get the current view position from the ViewPager by
     * extending SimpleOnPageChangeListener class and adding your method
     */
    public class DetailOnPageChangeListener extends ViewPager.SimpleOnPageChangeListener {

        private int currentPage;

        @Override
        public void onPageSelected(int position) {
            currentPage = position;
        }

        public final int getCurrentPage() {
            return currentPage;
        }
    }
或者试试这行代码

mViewPager.getCurrentItem()

source和更多信息来自

每当我进入我的viewpager的最后一页时,它都不会显示toast消息的位置,知道为什么吗?发布您的代码,以便我们检查并让您知道错误操作。mPager.getCurrentItem()会导致您在使用位置时出现问题。这应该能解决你的问题,先生。我仍然无法获取最后一张幻灯片/页面的位置。最后一页没有使用.getCurrentItem()返回任何内容;但其他人回来了