android学习(二) Fragment之间的通信

来源:互联网 发布:镜之边缘催化剂优化 编辑:程序博客网 时间:2024/06/05 11:25

定义一个接口

为了让一个片段最多传达到它的活动,您可以定义片段中的类的接口和活动中实现它。该片段其onAttach()生命周期方法的过程中捕获的接口实现,然后可以调用接口方法,以便与活动通信。

public class FirstFragment extends Fragment {    private OnFragmentSelectedListener mCallback;    // Container Activity must implement this interface    public interface OnFragmentSelectedListener {        public void onArticleSelected(int position);    }    @Override    public void onAttach(Activity activity) {        super.onAttach(activity);        //自定义一个throw如果没有继承就打印        try {            mCallback = (OnFragmentSelectedListener) activity;        } catch (ClassCastException e) {            throw new ClassCastException(activity.toString()                    + " 必须继承OnFragmentSelectedListener");        }    }    private void init(){            //在一个按钮里调用接口里的函数            view.findViewById(R.id.abc).setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    mCallback.onArticleSelect(2);                }            });        }    ...}

继承接口

为了从该Fragment接收事件回调,承载它必须实现在Fragment中定义的接口的方法。

public static class MainActivity extends Activity        implements FirstFragment.OnFragmentSelectedListener{    ...    public void onArticleSelected(int position) {        //在方法里调用SecondFragment里的方法实现通信    }}

摘自android developer

0 0
原创粉丝点击