详解Android activity与fragment之间的通信交互
程序员文章站
2023-11-04 18:45:28
前言
纵观市场,大多数的app都采用导航+fragment这种设计模式,如微信,qq,京东,淘宝,究其原因:简洁。
在开发过程中不可避免的会出现fragment与fra...
前言
纵观市场,大多数的app都采用导航+fragment这种设计模式,如微信,qq,京东,淘宝,究其原因:简洁。
在开发过程中不可避免的会出现fragment与fragment,fragment与activity之间的通信交互问题。
本章讲述如何实现fragment与activity之间的通信。
一、app构成
mainactivity+底部导航栏;
二、通信目的
mainactivity中成员方法test(),fragment中经test()方法判断后,方可执行下一步操作,如执行界面跳转;
例:
public class mainactivity extends activity{ public boolean mbaidusdk_is_ok = false; public boolean ismbaidusdk_is_ok() { return mbaidusdk_is_ok; } public void setmbaidusdk_is_ok(boolean mbaidusdk_is_ok) { this.mbaidusdk_is_ok = mbaidusdk_is_ok; } }
如上述示例代码,在fragment中需要对mbaidusdk_is_ok进行值判断,执行界面跳转;
三、解决方法
public class test1fragment extends fragment implements onclicklistener { private activity mactivity; @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { mactivity = getactivity();//在界面创建时,定义父activity view = inflater.inflate(r.layout.fragment_test1, container, false); return view; } @override public void onviewcreated(view view, bundle savedinstancestate) { // fragment_test1 布局中的一个测试按钮 button test_button= (button) view.findviewbyid(r.id. test_button); test_button setonclicklistener(this);//设置按钮监听事件 super.onviewcreated(view, savedinstancestate); } @override public void onclick(view view) { // todo auto-generated method stub switch (view.getid()) { //测试按钮监听事件 case r.id.test_button: // mactivity即为代表的父activity intent intent = new intent(mactivity, secondactivity.class); log.i("baidusdk", "验证:" + ((mainactivity) mactivity).ismbaidusdk_is_ok()); //最为关键的一步,fragment调用父activity的成员方法,进行通信 if (((mainactivity) mactivity).ismbaidusdk_is_ok()) { startactivity(intent); } else { log.e("test","请确认mbaidusdk_is_ok是否正常!"); } break; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
详解Android activity与fragment之间的通信交互
-
详解Android Activity之间跳转出现短暂黑屏的处理方法
-
Android实现Activity之间通信的方法
-
Android中Fragment的加载方式与数据通信详解
-
Activity与Service之间交互并播放歌曲的实现代码
-
Android基础之Fragment与Activity交互详解
-
Android 两个Fragment之间的跳转和数据的传递实例详解
-
PHP与Go语言之间的通信详解
-
Android通过Socket与服务器之间进行通信的示例
-
Android 手动撸出一个事件总线框架 二 Activity上主线程与子线程之间的通信