fragment界面交互实操(步骤)
首先,新建一个继承了fragment类的类,在oncreateview方法中,使用方法的参数inflater,用其inflater.inflate(R.layout.fragment1,container,false);来新建一个view
并在此方法中返回该VIEW,这就是我们的fragment的界面
然后,在activity中,通过上下文得到fragmentmanager,开启实物,加入fragment实例,加入回退栈,提交事物
如下所示:
1 FragmentManager fg = getFragmentManager(); 2 FragmentTransaction ft = fg.beginTransaction(); 3 fg1 = new fragmenttest(); 4 Bundle data = new Bundle(); 5 data.putString("123","hello"); 6 fg1.setArguments(data); 7 ft.add(R.id.myline,fg1); 8 ft.addToBackStack(null); 9 ft.commit();
从activity中向fragment传值只需定义bundle对象,设置值,调用fragment实例的setArgument方法即可
从fragment向activity传值,有两种方法
方法一:
在fragment的onattach方法中获得宿主activity的实例,并在需要的时候调用此实例来调用activity的方法传值
方法一虽然简单,但是并不推荐,这样会让fragment的适配性降低,如果用于其他的activity就必须修改
方法二:
在fragment中定义接口,并在activity中实现该接口,同样的,在onattach方法中取得activity的实例,并转换成接口的类型,需要调用的时候,我们用这个转换的实例就可以了。
这样比方法一的适配性更好,不用在每次变化的时候修改我们的fragment