2016-01-06 39 views
1

我想膨脹另一個佈局到最後一頁上有一個viewpager的活動。這就像一個測驗,其中在回答問題(問題和答案的集合在viewpager中的佈局膨脹的位置)後,我想在ViewPager的最後部分膨脹另一個佈局,並顯示一條消息,如「Thank you for進行測驗!」,爲了調試的目的,我已經試過在public Object instantiateItem(View container, int position)方法寫一些條件這樣如何獲取viewpager的最後一頁的位置?

if (position == getCount()){ //get count returns the number of pagesize 
    //do some layout inflating here 
} 

調試,我用麪包消息,顯示當前頁,但它並沒有顯示,如果某事我在最後一頁上滑動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; 
} 

我希望每個幻燈片/頁顯示的是一個祝酒消息的當前頁,但在viewpager的最後一頁,不顯示任何敬酒消息。

回答

0
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; 
} 
+0

每當我m去我的viewpager的最後一頁,它不顯示一個位置toast消息,任何想法爲什麼? –

+0

發佈您的代碼,以便我們可以檢查並讓您知道做錯了。 – CodingRat

+0

它現在更新了,檢查它:) –

0

創建一個監聽器,並把它放在你的viewpager:

/** 
    * 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() 

源的詳細信息從http://developer.android.com/reference/android/support/v4/view/ViewPager.html#getCurrentItem%28%29

+0

最後一頁未使用.getCurrentItem()返回任何內容。但其他回報 –