2016-01-06 2 views
1

Я хочу раздуть другой макет для деятельности, на которой есть просмотрщик на последней странице. Это похоже на викторину, в которой после ответа на вопросы (где в наборах вопросов и ответов находится в макете, раздутой в viewpager), я хочу раздуть другой макет на последней части моего viewpager и отобразить сообщение типа «Спасибо за принимая викторину!», для целей отладки, я пытался писать некоторые условия на методе 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, он не отображает позицию для сообщения тоста, любая идея почему? –

+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(); но другая возвращается –

Смежные вопросы