zoukankan      html  css  js  c++  java
  • 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得到的结果是这样的

  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/xieyier/p/4171854.html
Copyright © 2011-2022 走看看