1
我有我的android應用程序中的圖像和文本viewPager,我的目標是創建一個runnable讓這個視圖頁面自動滾動,而我的另一個目標是當用戶點擊這個項目viewpager我需要去另一個活動。Android viewpager調用setCurrentitem沒有onPageSelected
這是我可以運行:
final Handler handler = new Handler();
final Runnable Update = new Runnable() {
public void run() {
if (currentPage == NUM_PAGES - 1) {
currentPage = -1;
}
pager.setCurrentItem(currentPage++,true);
pager.setScrollBarFadeDuration(R.styleable.CirclePageIndicator_fillColor);
pager.setScrollDurationFactor(4);
mIndicator.setCurrentItem(currentPage++);
}
};
swipeTimer = new Timer();
swipeTimer.schedule(new TimerTask() {
@Override
public void run() {
handler.post(Update);
}
}, 1000, 3000);
的問題是,每次可運行的呼叫「SetCurrentItem()」的使用onPageSelected函數被調用,然後活動被打開。那麼如何防止每3秒調用setCurrentItem時調用onpageselected?
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
Picture current = (Picture)pageAdapter.getItem(arg0);
Article a = getArticleById(current.getArticleId(), p);
Bundle bundle=new Bundle();
Intent intent = new Intent();
intent.setClass(HomePageActivity.this,DetailActivity.class);
//.getString(tag)));
bundle.putParcelable("article", a);
bundle.putParcelableArrayList("pic", a.getPic());
intent.putExtras(bundle);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
currentPage=arg0;
//mIndicator.setCurrentItem(arg0);
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
它的工作,但不是整個佈局,我做onclicklistener爲ImageView的唯一 – Amalo
你可以修改它取決於你所需要的東西。如果要管理活動/片段中的點擊事件,還可以使用自己的偵聽器。 – iamkaan