ViewPager点击第一页按钮切换至另一页如何实现

子曰过 2015-01-06 04:50:27
如图所示,怎么实现这个功能。每个页面都是一个单独的Activity,在MainActivity中可以用ViewPager.setCurrentItem切换,
但是在page1Activity中怎么搞嘞?
...全文
3895 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
daydreammer 2016-09-07
  • 打赏
  • 举报
回复
manager里面的那个单例模式中 要用static来修饰listener
android石头 2015-10-29
  • 打赏
  • 举报
回复
请问怎么传递的this到page1里面的
LakeSideHu 2015-09-10
  • 打赏
  • 举报
回复
观察者模式搞定
子曰过 2015-01-07
  • 打赏
  • 举报
回复
用回调实现了 定义一个接口 在MainActivity里实现接口,即切换页面功能 把this传进page1里 然后在page1里调用接口就可以了 想通了就不难了
子曰过 2015-01-07
  • 打赏
  • 举报
回复
引用 8 楼 heaimnmn 的回复:
写一个公用方法,就可以直接调用了
我的困难 就是在这个“直接调用”上,viewPager里的Activity如何访问到MainActivity里的方法
子曰过 2015-01-07
  • 打赏
  • 举报
回复
引用 8 楼 heaimnmn 的回复:
写一个公用方法,就可以直接调用了
引用 5 楼 lxfhjjsfq 的回复:
看不到图,但是根据你说的,可以定义一个接口MainActivity实现回调接口,注册到管理类上,在pageaActivity上面执行操作的时候,可以调用管理类的接口回调就可以了。 如: 1.接口是NeedPageChanged,回调方法是pageChanged(int page) public interface NeedPageChanged{ public void pageChanged(int page); } 2.定义管理类PageChangedManager. public class PageChangedManager{ ......//可以采取单例 private NeedPageChanged listener; public void setNeedPageChanged(NeedPageChanged npc){ listener = npc; } public void sendPageChanged(int page){ listener.pageChanged(page); } } 3.让MainActivity实现NeedPageChanged接口,并注册到PageChangedManager上。 4.在page1Activity中调用PageChangedManager的sendPageChanged,这样就可以把数据发到MainActivity上面了。
感谢写了这么多代码 那管理类PageChangedManager的对象放在哪里呢,有点想不通
哎,真难 2015-01-07
  • 打赏
  • 举报
回复
写一个公用方法,就可以直接调用了
水的川 2015-01-07
  • 打赏
  • 举报
回复
引用 5 楼 lxfhjjsfq 的回复:
看不到图,但是根据你说的,可以定义一个接口MainActivity实现回调接口,注册到管理类上,在pageaActivity上面执行操作的时候,可以调用管理类的接口回调就可以了。 如: 1.接口是NeedPageChanged,回调方法是pageChanged(int page) public interface NeedPageChanged{ public void pageChanged(int page); } 2.定义管理类PageChangedManager. public class PageChangedManager{ ......//可以采取单例 private NeedPageChanged listener; public void setNeedPageChanged(NeedPageChanged npc){ listener = npc; } public void sendPageChanged(int page){ listener.pageChanged(page); } } 3.让MainActivity实现NeedPageChanged接口,并注册到PageChangedManager上。 4.在page1Activity中调用PageChangedManager的sendPageChanged,这样就可以把数据发到MainActivity上面了。
为了一次调用不用写个接口吧,感觉好浪费。在mainactivity中写个public方法调用就好了。。
_xianfeng99 2015-01-06
  • 打赏
  • 举报
回复
看不到图,但是根据你说的,可以定义一个接口MainActivity实现回调接口,注册到管理类上,在pageaActivity上面执行操作的时候,可以调用管理类的接口回调就可以了。 如: 1.接口是NeedPageChanged,回调方法是pageChanged(int page) public interface NeedPageChanged{ public void pageChanged(int page); } 2.定义管理类PageChangedManager. public class PageChangedManager{ ......//可以采取单例 private NeedPageChanged listener; public void setNeedPageChanged(NeedPageChanged npc){ listener = npc; } public void sendPageChanged(int page){ listener.pageChanged(page); } } 3.让MainActivity实现NeedPageChanged接口,并注册到PageChangedManager上。 4.在page1Activity中调用PageChangedManager的sendPageChanged,这样就可以把数据发到MainActivity上面了。
水的川 2015-01-06
  • 打赏
  • 举报
回复
引用 2 楼 leiour 的回复:
[quote=引用 1 楼 u013377714 的回复:] viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);
问题是我在page1的Activity中响应事件,操作不了viewPager[/quote]你将那个viewpager设成全局变量,调用它。。
u010110521 2015-01-06
  • 打赏
  • 举报
回复
发个广播给MainActivity
子曰过 2015-01-06
  • 打赏
  • 举报
回复
引用 1 楼 u013377714 的回复:
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);
问题是我在page1的Activity中响应事件,操作不了viewPager
水的川 2015-01-06
  • 打赏
  • 举报
回复
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧