最新消息:关注【已取消】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Android接口回调事件学习_Activity与Fragment交互

Android 太平洋学习网 浏览 评论

如果你想把Android Fragment事件回调给Activity,或者把Activity事件回调到Fragment界面,都需要用到Android接口回调事件,方法就是在一个页面上定义一个接口,然后另外一个页面implements实现这个接口,这样就可以传递事件或者参数了!

下面的示例是一个Fragment生命周期同步的接口回调示例,打算在Activity中实现它,开始来学习吧!

一:首先在Fragment上建立一个callback接口:

public interface SampleCallback {
    void onButtonClicked();
}

二:分配callback回调事件,在需要传递回调事件的地方使用SampleCallback事件,代码如下:

public final class SampleFragment extends Fragment {

    private SampleCallback callback;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        // fragment新建后给callback赋值
        if (context instanceof SampleCallback) {
            callback = (SampleCallback) context;
        } else {
            throw new RuntimeException(context.toString()
                    + " must implement SampleCallback");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        callback = null;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.sample, container, false);
        
        // 添加按钮点击事件
        view.findViewById(R.id.actionButton).setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                callback.onButtonClicked(); // 调用callback
            }
        });
        return view;
    }
}

三:在Activity界面实现SampleCallback接口,并实现onButtonClicked方法,代码如下:

public final class SampleActivity extends Activity implements SampleCallback {

    // ... Skipped code with settings content view and presenting the fragment

    @Override
    public void onButtonClicked() {
        // Invoked when fragment's button has been clicked
    }
}

这种通过liferecycle生命周期来回调接口的方式,也是和通过setter方法或者构造方法回调事件是一样普遍的,所以作为Android开发人员,也必须要掌握。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/android/1067.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论