自定义对象的监听方式


问题描述:

当一个事件的触发不定期的时候,即我们不知道这个触发何时来到,但是我们却要对这个触发执行某些方法,如何实现?

可能的解决方案:

我当时就想到了,这个问题类似与Android的部件监听(我没有去看Android的源码,太懒了。。。)。由于现在还在研读Thinking in Java这种入门书籍,突然来了想法,罗列如下,可以通过接口。

下面是我写的一个测试的例子

首先是一个类似Button的部件

package com.example.androidtest2.service;

/**
 * 这个类类似于Button这样的部件
 * @author qingxiangzhang
 *
 */
public class XXComonent {

	public static void setOnClickListener(XXXComponentClickListener clickListener){

		for(int i=0; i<5;i++)
			clickListener.xxxxComponentClickResponse(i);

	}
}

然后是这个部件的监听方法

package com.example.androidtest2.service;

/**
 * 这个类类似于Button的setOnClickListener方法
 * @author qingxiangzhang
 *
 */
public interface XXXComponentClickListener {
	public void xxxxComponentClickResponse(int i);
}

最后是如何来获得 这个 部件点击触发的响应,我们来打印出上面输入的0-5

XXComonent.setOnClickListener(new XXXComponentClickListener() {

						@Override
						public void xxxxComponentClickResponse(int i) {
							Log.e("点击事件的触发", String.valueOf(i));
						}
					});

OK, 问题解决了,现在我想去翻看Android源码了。

自定义对象的监听方式,布布扣,bubuko.com

时间: 2024-07-29 16:47:16

自定义对象的监听方式的相关文章

自己定义对象的监听方式

问题描写叙述: 当一个事件的触发不定期的时候,即我们不知道这个触发何时来到,可是我们却要对这个触发运行某些方法,怎样实现? 可能的解决方式: 我当时就想到了,这个问题类似与Android的部件监听(我没有去看Android的源代码,太懒了...).因为如今还在研读Thinking in Java这样的入门书籍,突然来了想法,罗列例如以下,能够通过接口. 以下是我写的一个測试的样例 首先是一个类似Button的部件 package com.example.androidtest2.service;

Node.js自定义对象事件监听与发射

一.Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件.在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中.它应该是使用观察者设计模式来实现把事件监听器添加到对象以及移除,之前写OC那块的时候也有些观察者设计模式,在OC中也经常用到:通知中心.KVO,也很容易理解. .addListener(eventName,callback):将回调函数附加到对象的监听器中.当eventName的事件被触发时,回调函数被放置在事件队列

Button的四种监听方式

Button按钮设置点击的四种监听方式 注:加粗放大的都是改变的代码 1.使用匿名内部类的形式进行设置 使用匿名内部类的形式,直接将需要设置的onClickListener接口对象初始化,内部的onClick方法会在按钮被点击的时候执行 第一个活动的java代码: 1 package com.sanlian.buttontest; 2 3 import android.content.Intent; 4 import android.support.v7.app.AppCompatActivit

在EditText中限制输入,自定义样式,监听输入的字符,自动换行

自动获取焦点 <!-- 添加:<requestFocus /> 会自动获取焦点 --> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:gravity="center_horizontal" android:hint="自

【laravel】Eloquent 模型事件和监听方式

所有支持的模型事件 在 Eloquent 模型类上进行查询.插入.更新.删除操作时,会触发相应的模型事件,不管你有没有监听它们.这些事件包括: retrieved 获取到模型实例后触发 creating 插入到数据库前触发 created 插入到数据库后触发 updating 更新到数据库前触发 updated 更新到数据库后触发 saving 保存到数据库前触发(插入/更新之前,无论插入还是更新都会触发) saved 保存到数据库后触发(插入/更新之后,无论插入还是更新都会触发) deleti

Android 四种点击监听方式

Android点击监听事件经常用到,经常用到的有以下几种 第一种:最常用到的,通过实现OnClickListen,实现OnClick方法去实现 public class MainActivity extends Activity implements OnClickListener // 用实现接口的方式实现点击 button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(this); @Override p

RecyclerView的2种监听方式

NO.1:在自定义适配器的ViewHolder里面写监听事件 //RecyclerView适配器 public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private Context mContext; private LayoutInflater mLayoutInflater; private String[] mCityName; public RecyclerVi

【OC学习-34】通知NSNotification,类似于KVO,用于对象之间监听然后发通知提醒

通知其实和KVO类似,就是先在类A中设置通知,然后再类B中设置个监听这个通知的方法,当然可以通过这个通知方法可以传递一些参数,得到这个参数之后,一般是触发一个动作,此处举例就是触发输出一些内容而已. (1)在Child类中初始化一个实例变量为100,每次递减2,当小于90时候触发通知. //Child.h #import <Foundation/Foundation.h> @interface Child : NSObject @property(nonatomic,assign)NSInte

Linux中多路串口Select监听方式

申明:本文转自链接:https://www.jianshu.com/p/a293869bbdb8 串口读函数read是阻塞函数,多路串口接收不太好处理,如果每路串口使用单独的线程接收浪费资源,使用select()函数监听多路串口数据可以把所有接收的数据在一个线程中处理,类似QT中的槽函数功能. 1.函数原型介绍: int select(int nfds, fd_set *rdfds, fd_set *wtfds, fd_set *exfds, struct timeval *timeout) 入