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