回调函数在android中的使用
2016-04-09 21:49
495 查看
上文 http://blog.csdn.net/rong_wz/article/details/51107440讲解了回调函数在java中的场景,本文介绍自己的android应用中的使用。
场景:
假如有一listView,里面是游戏列表,在listView的item中有个button,点击此button可以有相应逻辑,比如打开相应游戏,当然可以在listView的Adapter中去实现,但此处,使用回调,在Activity或Fragment中实现,这就需要回调。
首先定义一个接口:
public interface GameAdapterClickListener{
void onItemClick(AppInfoResult info, int pos );
void onItemClick(AppInfoResult into, View v, int pos);
}
接着,在Adapter中,应该有一上面接口的变量,mListener,定义如下:
GameAdapterClickListener mListener;
并有注册方法:
public void registerListener(GameAdapterClickListener listener){
mListener = listener;
}
button点击时的响应方法,调用对应的mListener的响应:
holder.button.setOnClickListener(new OnClickListener(){
if(mListener != null){
mListener.onItemClick( mList.get(position), position);
}
});
最后,在Fragment或Activity中实现对应接口,并设置进Adapter。
此处使用Fragment:
... GamesFragment implements GameAdapterClickListener{
...
//adapter注册
mGamesAdapter.register(this);
//下面是方法具体实现:
@Override
public void onItemClick(AppInfoResult info , View v, int pos){
//跳转逻辑 省略
}
@Override
pubic void onItemClick(AppInfoResult info, int pos){
//逻辑,省略
}
}
这样就实现了回调的使用。(完)
场景:
假如有一listView,里面是游戏列表,在listView的item中有个button,点击此button可以有相应逻辑,比如打开相应游戏,当然可以在listView的Adapter中去实现,但此处,使用回调,在Activity或Fragment中实现,这就需要回调。
首先定义一个接口:
public interface GameAdapterClickListener{
void onItemClick(AppInfoResult info, int pos );
void onItemClick(AppInfoResult into, View v, int pos);
}
接着,在Adapter中,应该有一上面接口的变量,mListener,定义如下:
GameAdapterClickListener mListener;
并有注册方法:
public void registerListener(GameAdapterClickListener listener){
mListener = listener;
}
button点击时的响应方法,调用对应的mListener的响应:
holder.button.setOnClickListener(new OnClickListener(){
if(mListener != null){
mListener.onItemClick( mList.get(position), position);
}
});
最后,在Fragment或Activity中实现对应接口,并设置进Adapter。
此处使用Fragment:
... GamesFragment implements GameAdapterClickListener{
...
//adapter注册
mGamesAdapter.register(this);
//下面是方法具体实现:
@Override
public void onItemClick(AppInfoResult info , View v, int pos){
//跳转逻辑 省略
}
@Override
pubic void onItemClick(AppInfoResult info, int pos){
//逻辑,省略
}
}
这样就实现了回调的使用。(完)
相关文章推荐
- Android library projects cannot be launched解决方法
- Android工程获取bulid.xml文件的方法
- android手机连上电脑热点,如何获得电脑ip地址?
- android中消息机制
- Android开发学习之路-PopupWindow和仿QQ左滑删除
- Android 开源框架介绍序列表
- android 基础知识
- androidStudio异常:Couldn't load memtrack module (No such file or directory)
- Android性能优化
- Android代码绘制虚线、圆角、渐变效果图
- AndroidStudio打包及引用aar - Android
- Android MotionEvent 和 TouchSlop
- 解决android EditText自动获取焦点的问题
- Android 之EditText自动检索Listview中的数据
- Android进阶学习内容整理
- Android 开发中用到的几个多线程解析
- Android三种播放视频的方式
- Realm Android简单使用说明
- Android中MediaPlayer的简单使用
- AndroidStudio集成ndk、开发JNI