2011-12-16 35 views
22

Tôi muốn có được vị trí hiện tại của quan điểm rõ ràng của PagerAdapter tôiAndroid PagerAdapter, có được vị trí hiện tại

Tôi không thấy một chức năng hiển nhiên như getPosition() và tôi muốn một.

Tôi muốn thêm một đối tượng vào ArrayList tại vị trí đó, nhưng tôi cần phải biết nó đầu tiên

Trả lời

39

Bạn sẽ sử dụng:

int position = mViewPager.getCurrentItem() 
+1

Tôi đang sử dụng gói tương thích và mở rộng PagerAdapter, cũng không có phương thức getCurrentItem. Làm thế nào tôi có thể làm cho một? http://pastebin.com/LabjNvqL – CQM

+0

Không, oncreate chỉ chạy lúc bắt đầu khi trang là 0, sử dụng nó ở một nơi khác khi trang không phải là 0 và nó sẽ trả về số trang đó –

+0

@CQM bạn đang sử dụng VIewPager và bạn đang thiết lập bộ chuyển đổi của nó cho lớp đó, chỉ cho tôi lớp mà bạn có một oncreate –

3

https://github.com/Shereef/ViewPagerPlusExpandableList/blob/master/src/net/shereef/vewpagerplusexpandablelistexample/ViewPagerPlusExpandableListActivity.java#L204

nếu tôi viết sau dòng đó

Log.i("pager",myPager.getCurrentItem()+""); 

nó sẽ hiển thị trong nhật ký trang mục hiện tại trong khi o ncreate đang được chạy luôn luôn là 0

lưu ý rằng tôi đã sử dụng đối tượng cho người xem nó không phải là bộ điều hợp.

+0

bạn đang nói với tôi rằng nó luôn trả về 0? Tôi không hiểu, nó sẽ cho bạn biết một vị trí chính xác? – CQM

+0

được rồi, ngay tại đó. Tôi phải cập nhật gói tương thích của mình = \ đó là một sự thực hiện rất bực bội – CQM

+0

Vui lòng chọn câu trả lời của jona là câu trả lời đúng, vì anh ta đã trả lời may mắn đầu tiên –

23

Tôi gặp sự cố này và không thể nhận được mã số getCurrentItem().

Tôi đã nhận được vị trí từ số ViewPager và không phải từ số PageAdapter. Các methet onPageSelected(int currentPage) là nhận được trang hiện đang được hiển thị.

//custom PageAdapter implementation 
mAdapter = new AwesomePagerAdapter(); 

//Our custom view pager that extends from ViewPager 
mPager = (CustomViewPager) findViewById(R.id.preview_gallery); 

mPager.setAdapter(mAdapter); 

// get the item that we should be showing from the intent 
mCurrentPage = extra.getInt("currentIndex"); 

// show the item the user picked 
mPager.setCurrentItem(mCurrentPage); 

// listen for page changes so we can track the current index 
mPager.setOnPageChangeListener(new OnPageChangeListener() { 

    public void onPageScrollStateChanged(int arg0) { 
    } 

    public void onPageScrolled(int arg0, float arg1, int arg2) { 
    } 

    public void onPageSelected(int currentPage) { 
     //currentPage is the position that is currently displayed. 
    } 

}); 

Làm nó trong PageAdaper không làm việc cho tôi khi tôi muốn tải trước hình ảnh mà không nhìn thấy được. Vị trí được thông qua instantiateItem(View collection, int position) của PageAdapter` là vị trí của mục tiếp theo được khởi tạo. Điều này không liên quan gì đến mục được hiển thị.

+0

Đây là người duy nhất làm việc. getCurrentItem() không đáng tin cậy. – Avijit

+0

hoạt động tốt cho tôi, cảm ơn – MBH

Các vấn đề liên quan