Android在自定义类中实现自定义监听器方式

发布时间:2020-08-31 06:19:39

来源:脚本之家

阅读:203

作者:Simon_Qi

监听器可以说是Android开发中最常用的东西之一。我们通过监听器可以监听对象的各种变化事件,并进行一些需要的处理,相当有用,而且使用起来也很简单。其实,监听器就相当于C++中的回调函数,达到条件就回调执行。

很多时候,我们在自定义控件类中也需要实现一些属性变化的监听器,实现跟原生控件监听器一样的功能。以下分几个步骤说明自定义监听器实现和使用(以自定义类MyClass加载完成监听器为例):

一、自定义监听器的实现:

1、 定义一个加载完成监听接口

//加载监听接口

public static interface LoadingListener {

public void onFinishedLoading(boolean success);

}

在MyClass自定义类中定义一个加载完成监听接口LoadingListener,接口中声明一个方法onFinishedLoading给使用该接口的类实现具体过程,success表示是否加载成功.

2、 声明接口并实现一个设置监听器的方法

声明LoadingListener接口

private LoadingListener mLoadingListener;

提供设置LoadingListener方法

public void setLoadingListener(LoadingListener listener) {

mLoadingListener = listener;

}

3、 对应的情况下调用该接口的方法

在MyClass加载完成的时候则调用监听接口的方法

mLoadingListener.onFinishedLoading(true);

二、自定义监听器的使用:

1、给MyClass的实例实现监听接口中方法

mMyClass.setLoadingListener(new MyClass.LoadingListener() {

@Override

public void onFinishedLoading(boolean success) {

//执行必要的处理

}

}

在onFinishedLoading函数中实现自定义的逻辑则可。

补充知识:android Activity 给 Fragment 设置回调的方法

这个实现方法很简单,可分为3步走:

1.在fragment中定义接口

2.在activity的定义时实现这个接口

3. 在fragment中的 onAttach 方法中 将 Context 转为 相应的接口;

代码如下:

public class AllFragment extends Fragment {

//......代码省略

@Override

public void onAttach(Context context) {

super.onAttach(context);

mOnChangeTabListener = (OnChangeTabListener) context;

}

public interface OnChangeTabListener{

void onChangeTab(String tag);

}

}

在activity的定义时实现该接口,如下:

public class SearchActivity extends AppCompactActivity implements AllFragment.OnChangeTabListener {

//代码省略

@Override

public void onChangeTab(String tag) {

if ("应用".equals(tag)){

mViewPager.setCurrentItem(1);

}else {

mViewPager.setCurrentItem(2);

}

}

}

以上这篇Android在自定义类中实现自定义监听器方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持亿速云。

android 实现自定义监听接口,Android在自定义类中实现自定义监听器方式相关推荐

  1. Android的事件处理——监听接口方式

    监听接口处理步骤: 1. 实现Listener接口 (1)定义Activity时实现接口 (2)定义内部类实现接口 (3)通过匿名内部类实现接口 2. View控件注册事件监听器 例:myButton ...

  2. android 控件监听方法,Android界面控件(2)—注册点击事件监听器

    Button和ImageButton 1.添加控件 1.打开Android项目下,res文件夹中的 layout 的 activity_main.xml 文件 2.可视化界面拖拽添加或修改 xml 文 ...

  3. android注册广播监听按钮,Android实现广播监听HOME键操作

    先写了个Service,在服务中通过广播来监听HOME键操作: public class HomeService extends Service{ private MonitoHomeReceiver ...

  4. android 发送彩信监听,在Android中发送短信和彩信,监听短信并显示

    发送短信: String body="this is sms demo"; Intent mmsintent = new Intent(Intent.ACTION_SENDTO, ...

  5. Android辅助服务监听dialog,Android开发中对话框辅助类——DialogHelper

    写在前面: 对话框在平时的开发工作中使用率很频繁,但是很多开发者每次使用都去写一堆代码,如此,不单单效率不高,而且代码也不优...为此,写了简单的封装. 效果如: 关键类DialogHelper.ja ...

  6. rocket mq 监听端口_浅谈业务流程中的mq使用方式

    假设有个场景: 下单成功需要给用户发送消息通知,发送消息通知通过mq实现 事务提交前发送mq消息 step1:start transaction step2:生成订单 step3:投递消息到mq st ...

  7. Android自定义监听回调

    我们常用的Button的点击事件,就是谷歌为我们封装好的监听回调,我们在调用setOnClickListener时就是在设置监听. 实际项目中我们也常常需要自定义监听回调,下面就是模仿setOnCli ...

  8. Android 自定义监听回调Listener

    自定义监听回调Listener 使用场景:在某一页面布局中,除了原生View还有自定义View,当触发自定义View的击事件时,该页面的原生布局需要同步进行处理 demo:主页面有两部分UI,一部分是 ...

  9. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)

    Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...

最新文章

  1. 收藏!工作中Git使用实践和常用命令流程合集
  2. mysql数据库语句q_mysql数据库命令大全,mysql基本命令大全
  3. python文件中环境声明_Python环境构建
  4. 第43讲:灵活好用的 Spider 的用法
  5. 懒加载 jquery代码
  6. git 忽略__pycache___容易被忽略的 Python 命令行参数
  7. 陆奇:疫情后将出现哪些创业新机会?
  8. 更新!机器学习手推笔记《规则学习》
  9. android浮动标题栏,GitHub - DARTTTTT/LBehavior: 跟随手势滑动,显示隐藏标题栏、底部导航栏及悬浮按钮的Android Behavior Library...
  10. Ubuntu 10.04 安装在 VMware Workstation 7 后,键盘无反应的解决方法
  11. android tv webview,Android TV开发---WebView焦点处理
  12. linux u盘安装win8,u盘启动大师安装深度技术win8.1系统教程
  13. 【目标检测】(12) 非极大值抑制 NMS 和 Soft-NMS,附TensorFlow完整代码
  14. 全自动微信淘宝客推广赚钱方式大揭秘
  15. 2021年钟霖高考成绩查询,2021年高考倒计时祝福短信
  16. python存根文件_Python – 嘲笑还是存根?
  17. 软件完整开发过程,以及项目的部署(精简)
  18. ESP32 ADF windows开发环境搭建 适配ADF到ESP32A1S
  19. 牛客题目 - 白色相簿(并查集)
  20. swi prolog 和java_在Java和SWI Prolog之间连接 - java

热门文章

  1. [转]Android蓝牙开发浅谈
  2. 再迎利好,“预共识”或能助力BCH“零确认”安全可靠
  3. 纽约州金融服务局(NYDFS)为比特币现金(BCH)打开绿灯
  4. 云效(原RDC)如何构建一个基于Maven的Java项目
  5. javascript常用工具类封装
  6. centos7下安装maven
  7. NHibernate之旅(8):巧用组件之依赖对象
  8. Linux下安装php环境并且配置Nginx支持php-fpm模块
  9. [翻译] DTCoreText 从HTML文档中创建富文本
  10. Excel应该这么玩——5、三种数据:Excel也是系统