Fragment与Activity之间数据传递
2015-10-04 14:36
363 查看
我们经常遇到fragment与activity之间通信的问题,一般也就那么几种方式,
1.fragment中使用getActivity()调用Activity中的public方法
2.activity使用getSupportFragmentManager()来管理fragment
3.activity使用bundle向fragment传递数据
3.activity实现fragment中定义接口接收数据(回调机制)
下面就来介绍一下bundle和接口的实现方式:
然后调用setArguments(bundle);
在fragment中接收数据
因为接口要由activity来实现,所以要把activity传递给这个接口引用,这样,就可以和Activity进行交互了
activity实现接口便完成了数据的传递
1.fragment中使用getActivity()调用Activity中的public方法
2.activity使用getSupportFragmentManager()来管理fragment
3.activity使用bundle向fragment传递数据
3.activity实现fragment中定义接口接收数据(回调机制)
下面就来介绍一下bundle和接口的实现方式:
bundle方式传递数据
首先,在activity中往bundle里加数据然后调用setArguments(bundle);
Bundle bundle = new Bundle(); bundle.putString("data", "数据来自mainActivity"); fragmentA.setArguments(bundle); fragmentManager.beginTransaction().replace(R.id.layout_root, fragmentA, null).commit();
在fragment中接收数据
/**接收来自Activity的数据**/ Bundle bundle = getArguments(); textView.setText(bundle.getString("data"));
接口方式传递数据
在fragment中定义接口public interface OnReceiverDataListener { void loadData(String str); }
因为接口要由activity来实现,所以要把activity传递给这个接口引用,这样,就可以和Activity进行交互了
@Override public void onAttach(Activity activity) { super.onAttach(activity); onReceiverDataListener = (OnReceiverDataListener) activity; }
activity实现接口便完成了数据的传递
@Override public void loadData(String str) { Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show(); }
源码下载
相关文章推荐
- C#实现子窗体与父窗体通信方法实例总结
- java和c#使用hessian通信的方法
- win32下进程间通信(共享内存)实例分析
- WinForm实现跨进程通信的方法
- C#中使用UDP通信实例
- ASP.NET UserControl 通信的具体实现
- Ajax中数据传递的另一种模式 javascript Object Notation思想(JSON)
- Android Activity 完全结束并退出程序的实例
- Android开发 旋转屏幕导致Activity重建解决方法
- android横竖屏切换时候Activity的生命周期
- Android学习笔记--使用剪切板在Activity中传值示例代码
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- android PopupWindow 和 Activity弹出窗口实现方式
- Android Fragment 基本了解(图文介绍)
- Android开发中Activity属性设置小结
- PHP多线程编程之管道通信实例分析
- flex与js通信与彼此之间的互调整理(一)
- Perl的Mail::POP3Client模块和Gmail通信实例
- 使用DNode实现php和nodejs之间通信的简单实例
- 模拟通信与数字信号区别