Fragment基本使用(三)——与Activity之间传递数据
来源:互联网 发布:VPN网络 编辑:程序博客网 时间:2024/05/08 18:42
一、Fragment向Activity传递数据
1,Fragment
在Fragment中定义一个接口,然后在onAttach(Activity activity)方法中取得这个接口的实现。
/** * Created by chourongqishi on 16/9/21. */public class FirstFragment extends Fragment { private TransDataToActivityListener listener; public interface TransDataToActivityListener { public void setDatas(String datas); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_first, container, false); listener.setDatas("向Activity传递数据"); return view; } @Override public void onAttach(Context context) { super.onAttach(context); try { listener = (TransDataToActivityListener) context; } catch (ClassCastException e) { e.printStackTrace(); } }}
2,Activity接收数据
Activity中实现Fragment定义的接口,然后取得数据
public class MainActivity extends FragmentActivity implements FirstFragment .TransDataToActivityListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建要添加的Fragment对象 FirstFragment firstFragment = new FirstFragment(); //获取Fragment管理器 FragmentManager manager = getSupportFragmentManager(); //获取事物管理器 FragmentTransaction transaction = manager.beginTransaction(); //添加Fragment transaction.add(R.id.fl_container, firstFragment); //提交事物 transaction.commit(); } /** * 实现Fragment中的接口,获取数据 * * @param datas */ @Override public void setDatas(String datas) { Toast.makeText(this, datas, Toast.LENGTH_SHORT).show(); }}
二、Activity向Fragment传递数据
1,Activity:
/** * 实现Fragment中的接口,获取数据 * * @param datas */ @Override public void setDatas(String datas) { //获取Fragment管理器 FragmentManager manager = getSupportFragmentManager(); //获取事物管理器 FragmentTransaction transaction = manager.beginTransaction(); //创建一个新Fragment对象 NewFragment newFragment = new NewFragment(); //添加数据 Bundle bundle = new Bundle(); bundle.putString("datas", datas); //向Fragment传递数据 newFragment.setArguments(bundle); //替换Fragment transaction.replace(R.id.fl_container, newFragment); //将上一个Fragment加入回退栈 transaction.addToBackStack(null); //提交事物 transaction.commit(); }
2,Fragment接收数据
/** * Created by chourongqishi on 16/9/21. */public class NewFragment extends Fragment { private TextView tvShowDatas; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_new,container,false); tvShowDatas = (TextView) view.findViewById(R.id.tv_show_datas); Bundle bundle = getArguments(); String datas = bundle.getString("datas"); tvShowDatas.setText(datas); return view; }}
0 0
- Fragment基本使用(三)——与Activity之间传递数据
- 王学岗Fragment(六)——Activity与fragment之间数据的传递
- Fragment与Activity之间传递数据
- Android-Activity与Fragment之间传递数据
- Fragment与Activity之间传递数据
- Fragment与Activity之间数据传递
- Fragment 与 Activity之间传递数据
- fragment与Activity之间的数据传递
- Fragment与Activity之间的数据传递
- Activity与fragment之间数据传递方法
- fragment与Activity之间数据的传递
- Activity与fragment之间传递数据
- Activity与Fragment数据传递之Fragment之间获取数据
- Activity与Fragment数据传递之Activity之间获取数据
- Otto进行事件分发(Activity 与Activity与Fragment之间传递数据)
- activity与activity之间传递数据和activity传递数据至fragment
- android bundle存放数据详解,activity与activity之间数据传递,fragment与fragment之间数据传递
- Android 笔记-Fragment 与 Activity之间传递数据
- UVa 232 纵横字谜的答案
- Volatile
- MyBatis 最简单的分页,贼几把方便,兄弟,不吹逼
- 不知道大小的图片在盒子中垂直居中
- poj 1256
- Fragment基本使用(三)——与Activity之间传递数据
- 车道检测(二)
- 有关于CSS的面试题和练习
- Js文档翻译---Promise
- 机器学习1
- break语句
- Jquery之淡入淡出及背景颜色深浅调整效果
- 前端傻瓜式入门No.2
- 计算机网络基础1