2012-04-12 7 views
3

Ich bin ein horizontal von Library implementieren ViewPager ViewPagerExtensions (com.astuetz.viewpager.extensions) von SwipeyTabsAdapter. Gibt es bei einem Wechsel der Sicht ohnehin einen abzufangen? Auf die gleiche Weise könnte ich jederzeit wissen, in welcher Ansicht der Benutzer ist?Erkennungsansicht ändern auf ViewPager

Der Code von ViewPager

public class DiccionariuPagerAdapter extends PagerAdapter { 

    protected transient Activity mContext; 

    private int mLength = 0; 

    public DiccionariuPagerAdapter(Activity context, int length) { 
     mContext = context; 
     mLength = length; 
    } 

    @Override 
    public int getCount() { 
     return mLength; 
    } 

    @Override 
    public Object instantiateItem(View container, int position) { 

     RelativeLayout v = new RelativeLayout(mContext); 

     View vi; // Creating an instance for View Object 
     LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (position == 0) {    
      vi = inflater.inflate(R.layout.diccionariu, null); 
     } 
     else if (position == 1) { 
      vi = inflater.inflate(R.layout.conxugar, null); 
     } 
     else { 
      vi = inflater.inflate(R.layout.traducir, null); 
     } 

     v.addView(vi); 

     //v.addView(t); 

     ((ViewPager) container).addView(v, 0); 

     startUpdate(container); 

     return v; 
    } 

    @Override 
    public void destroyItem(View container, int position, Object view) { 
     ((ViewPager) container).removeView((View) view); 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return view == ((View) object); 
    } 

    @Override 
    public void finishUpdate(View container) {} 

    @Override 
    public void restoreState(Parcelable state, ClassLoader loader) {} 

    @Override 
    public Parcelable saveState() { 
     return null; 
    } 

    @Override 
    public void startUpdate(View container) {} 

} 

vielen Dank

Antwort

7

das aktuelle Element benutzen Sie:

int itemId = ViewPager.getCurrentItem() 

Damit Sie die aktuelle Ansicht von Ihrem Adapter mit

retreive können
Adapter.getItem(itemId) 

Sie können auch den Hörer OnPageChangeListener

viewPager.setOnPageChangeListener(new OnPageChangeListener... 
4

kompiliert & Werke verwenden:

~~~

mPager.setOnPageChangeListener(new OnPageChangeListener() 
    { 
     @Override 
     public void onPageSelected(int position) 
     { 
       // if listener is set - when using an indicator, must update that here 
       mIndicator.setCurrentItem(position); 

       String msg = "onPageSelected - position: " + position; 
       Log.d("debug1", msg); 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) {} 

     @Override 
     public void onPageScrolled(int position, float arg1, int arg2) {} 
    }); 
+1

'setOnPageChangeListener' jetzt veraltet ist, aber wir können' addOnPageChangeListener'/'removeOnPageChangeListener verwenden 'stattdessen. – k2col

Verwandte Themen