回调接口的基本使用
2015-08-27 17:12
429 查看
比如我在fragment里面定义一个接口
这个接口里面的两个方法要在使用这个接口的地方重写,重写的时候写你需要的操作就行,就像clickllistener的用法。
那么什么时候会给这个接口传参数呢?
需要在这个fragment里面来实例
onAttach这个函数实在和activity建立联系之后会被调用。
在你需要调用这个回调的时候加上你在 接口里面定义的函数,在实现接口的地方就可以接受到你传的参数。下面这段代码还是在fragment中
调用了之后,你传进去的参数,比如这边的nY就会被传到实现这个接口的地方.
和clicklistener一样的用法,比如下面这段代码是我在activity中的代码:
那如果我们的接口定义在一个没有attach的地方,比如adapter那要怎么绑定接口呢?
那就和clicklistenerr一样,在你定义接口的地方定义一个set接口的方法 比如:
在需要使用接口的时候,调用这个adapter的setOnChoiseListener方法,这样就可以和clicklistener一样的使用方法了。
当然,要记得和上面的一样在需要的地方传参。
public static interface OnScrollListener{ void scrollUp(int dip); void scrollDown(int dip); }
这个接口里面的两个方法要在使用这个接口的地方重写,重写的时候写你需要的操作就行,就像clickllistener的用法。
那么什么时候会给这个接口传参数呢?
需要在这个fragment里面来实例
private OnScrollListener mListener; @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnScrollListener) activity; } catch (ClassCastException e) { throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); } }
onAttach这个函数实在和activity建立联系之后会被调用。
在你需要调用这个回调的时候加上你在 接口里面定义的函数,在实现接口的地方就可以接受到你传的参数。下面这段代码还是在fragment中
if(nY < 0 ){ //向上 mListener.scrollUp((int)nY); } else { mListener.scrollDown((int)nY); }
调用了之后,你传进去的参数,比如这边的nY就会被传到实现这个接口的地方.
和clicklistener一样的用法,比如下面这段代码是我在activity中的代码:
@Override public void scrollUp(int dip) { if(mTitleBar.getBottom() + dip > mActionBarHeight){ mTitleBar.layout(mTitleBar.getLeft(),mTitleBar.getTop(),mTitleBar.getRight(),mTitleBar.getBottom()+dip); mFrameContain.layout(mFrameContain.getLeft(),mFrameContain.getTop() + dip,mFrameContain.getRight(),mFrameContain.getBottom()); }else{ mTitleBar.layout(mTitleBar.getLeft(),mTitleBar.getTop(),mTitleBar.getRight(),mActionBarHeight); mFrameContain.layout(mFrameContain.getLeft(), mActionBarHeight, mFrameContain.getRight(), mFrameContain.getBottom()); } }
那如果我们的接口定义在一个没有attach的地方,比如adapter那要怎么绑定接口呢?
那就和clicklistenerr一样,在你定义接口的地方定义一个set接口的方法 比如:
public void setOnChoiseListener(onChoiseListener listener){ mListenr = listener; } public interface onChoiseListener{ public void getChoiseText(String text); }
在需要使用接口的时候,调用这个adapter的setOnChoiseListener方法,这样就可以和clicklistener一样的使用方法了。
当然,要记得和上面的一样在需要的地方传参。
相关文章推荐
- c语言之头文件包含顺序问题
- linux 的 I/O模型----select 相关
- 2016网络红人萧天
- C++中mutable关键字的用法
- CentOS下Git服务器搭建与客户端(windows和centos)搭建
- C#操作字符串方法总结
- HDU 4342 History repeat itself 简单公式
- url模块转换完整URL字符串
- 协程与线程和进程的关系理解
- java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
- android notification 详解
- POJ 4014
- Linux防火墙iptables学习笔记
- 编译、链接、加载
- swift 进阶资料
- 为什么使用spring Shiro去做安全认证
- 二维树状数组模板题 poj 1195 Mobile phones
- WPF 多语言支持
- 【C++】打印1到最大的n位数
- Metasploit(一)--Meterpreter的命令速查表