actvity与fragment之间的数据传递
2017-01-07 10:09
323 查看
一、activity向下面的fragment传递数据
1、通过setArguments()方法进行数据传递
例如:activity内的代码
public class MainActivity extends Activity {
private FragmentManager manager;
private FragmentTransaction transaction;
}
fragment内的代码:
public class MyFragment1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
2、可以在构建fragment时构建一个有参的构造函数,当activity新建fragment时可以直接将需要的参数传递过去:
注意fragment写构造函数时需要一个无参的构造函数,和一个有参的构造函数,有参的构造函数上必须加入@SuppressLint({“NewApi”, “ValidFragment”})注释,例如:
public ShouYeRepairShopHomeFragment() {
}
3、是在宿主Activity中定义方法,将要传递的值传递到Fragment中,在Fragment中的onAttach方法中,获取到这个值。
//宿主activity中的getTitles()方法
public String getTitles(){
return “hello”;
}
//Fragment中的onAttach方法
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
titles = ((MainActivity) activity).getTitles();
}
//通过强转成宿主activity,就可以获取到传递过来的数据
1、通过setArguments()方法进行数据传递
例如:activity内的代码
public class MainActivity extends Activity {
private FragmentManager manager;
private FragmentTransaction transaction;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manager = getFragmentManager(); transaction = manager.beginTransaction(); MyFragment1 fragment1 = new MyFragment1(); Bundle bundle1 = new Bundle(); bundle1.putString("id", "Activity发送给MyFragment1的数据"); fragment1.setArguments(bundle1); transaction.replace(R.id.left, fragment1, "left"); MyFragment2 fragment2 = new MyFragment2(); Bundle bundle2 = new Bundle(); bundle2.putString("id", "Activity发送给MyFragment2的数据"); fragment2.setArguments(bundle2); transaction.replace(R.id.right, fragment2, "right"); transaction.commit(); }
}
fragment内的代码:
public class MyFragment1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.f1, null); TextView textView = (TextView) view.findViewById(R.id.textView); Bundle bundle1 = getArguments(); textView.setText(bundle1.getString("id")); return view; }
}
2、可以在构建fragment时构建一个有参的构造函数,当activity新建fragment时可以直接将需要的参数传递过去:
注意fragment写构造函数时需要一个无参的构造函数,和一个有参的构造函数,有参的构造函数上必须加入@SuppressLint({“NewApi”, “ValidFragment”})注释,例如:
public ShouYeRepairShopHomeFragment() {
}
@SuppressLint({"NewApi", "ValidFragment"}) public ShouYeRepairShopHomeFragment(Repair repair) { this.repair = repair; }这两个构造函数
3、是在宿主Activity中定义方法,将要传递的值传递到Fragment中,在Fragment中的onAttach方法中,获取到这个值。
//宿主activity中的getTitles()方法
public String getTitles(){
return “hello”;
}
//Fragment中的onAttach方法
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
titles = ((MainActivity) activity).getTitles();
}
//通过强转成宿主activity,就可以获取到传递过来的数据
相关文章推荐
- Android中Activity和Fragment之间数据传递(例子中也有事务加载Fragment)
- Fragment和activity的之间的数据传递以及页面跳转
- 有关多个Fragment之间的数据传递
- 王学岗Fragment(六)——Activity与fragment之间数据的传递
- Android笔记Fragment与Activity之间传递数据
- Fragment与Fragment之间的数据传递
- Fragment与Activity之间数据传递
- 两个Fragment之间如何传递数据
- Fragment之间的跳转,和数据的传递
- Android笔记Fragment与Activity之间传递数据
- Activity与Fragment数据传递之Fragment之间获取数据 分类: Android 2015-07-02 10:33 11人阅读 评论(0) 收藏
- Fragment与Activity之间传递数据
- Android 笔记-Fragment 与 Activity之间传递数据
- EventBus,一个可以在Activity、Fragment、Service之间传递任意类型数据的事件总线框架
- Android fragment和activity之间的数据传递交互
- Fragment和Activity之间的数据传递
- 两个Fragment之间的跳转,和数据的传递
- fragment与Activity之间的数据传递
- ViewPager + Fragment处理两个Fragment的点击跳转以及之间的传递数据
- Fragment 与 Activity之间传递数据