首页 > 代码库 > Android fragment 想activity 传送数据

Android fragment 想activity 传送数据

fragment可以通过定义 fragment的接口的方法来 想activity传送数据;

而activity则是通过实现 fragment的接口来接收fragment的送来的数据;

1.在fragment 的subclass 中定义一个接口 如

OnInterfaceOfFragmentone 接口;

在接口中定义一些方法;让activity来调用;

 public  OnInterfaceOfFragmentone mCallback;

 

//为Activity 定义一个接口;    public interface OnInterfaceOfFragmentone{        public void OnContactEvent(String index);            }    @Override    public void onAttach(Activity activity){        super.onAttach(activity);         // 这是为了保证Activity容器实现了用以回调的接口。如果没有,它会抛出一个异常。        try {            mCallback=(OnInterfaceOfFragmentone)activity;        } catch (ClassCastException e) {            throw new ClassCastException(activity.toString()                    + " must implement OnHeadlineSelectedListener");        }    }

2. 在fragment的subclass fragmentone 中调用接口的方法来向activity传递信息如

    /*fragment 可以通过实现 接口 OnInterfaceOfFragmentone 的mCallback 实例 调用接口的方法OnContactEvent (或者接口的其他方法))     *      * mCallback.OnContactEvent(_index);     *      * 用户可以通过getInterfaceEvent() 将信息传递给Activity     * */    public void getInterfaceEvent( String _index){        mCallback.OnContactEvent(_index);    }

可以通过fragment的某个用户点击事件 来调用该方法;

//例如;        getInterfaceEvent("这是我要传给activity的数据 ");

3.在activity中 实现fragmentone.OnInterfaceOfFragmentone 的接口

public class MainActivity extends FragmentActivity implements        fragmentone.OnInterfaceOfFragmentone {//实现fragmentone.OnInterfaceOfFragmentone 的接口

3.1 重写 fragmentone.OnInterfaceOfFragmentone 的接口的方法

OnContactEvent(String index);

//实现fragmentone 的接口OnInterfaceOfFragmentone 的方法OnContactEvent()    //把fragment 的数据通过index 传进来    //    @Override    public void OnContactEvent(String index) {        // TODO Auto-generated method stub        final String sub=index;    Log.e("fragment give me data is",sub);    }

3.2得到的结果是这样的

 

Android fragment 想activity 传送数据