android开发笔记之监听者模式

1.一个监听接口的小Demo

package com.example.testcomparator;

public class ListenerManager {
	
	private Listener myListener = null;
	private boolean state;
	
	public void setListener(Listener myListener){
		this.myListener = myListener;
	}
	
	public void setState(boolean state){
		this.state = state;
	}
	
	public void doWorks(){
		if(myListener != null){
			myListener.run(state);
		}
	}
	
	public interface Listener{
		public void run(boolean state);
	}
}


package com.example.testcomparator;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity implements ListenerManager.Listener, 
																OnClickListener {
	
	public static final String TAG = "TEST_COMPARATOR";
	
	private TextView tv1 =null;
	private TextView tv2 =null;
	
	private int clickCount = 0;
	
	private ListenerManager listenerManager;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		init();		
	}

	private void init() {
		// TODO Auto-generated method stub
		tv1 = (TextView) findViewById(R.id.tv1);
		tv1.setOnClickListener(this);
		tv2 = (TextView) findViewById(R.id.tv2);

		tv1.setText("请点击我");
		tv2.setText("我是监听点击后的显示结果噢,亲");
		
		listenerManager = new ListenerManager();
		listenerManager.setListener(this);
	}

	@Override
	public void run(boolean state) {
		// TODO Auto-generated method stub
		if(state){
			tv2.setText("亲,您点击了:"+clickCount+"次"+",是偶数次噢");
		}else{
			tv2.setText("亲,您点击了:"+clickCount+"次"+",是奇数次噢");
		}
	}

	@Override
	public void onClick(View view) {
		// TODO Auto-generated method stub
		if(view == tv1){
			clickCount ++;
			if(clickCount%2 ==  0){
				listenerManager.setState(true);
				listenerManager.doWorks();
			}else{
				listenerManager.setState(false);
				listenerManager.doWorks();
			}
		}
	}

}


2.我的理解:

那么,监听者模式到底有什么用呢?

        我的理解是将一个行为操作放到后面来实现,并且此行为操作还可以改变。哈哈,看这个是不是眼熟啊,不错,如果你还记得策略模式的话,对,这就是一个简单的策略模式。


3.参考资料:

(1) java中的监听者模式

http://blog.csdn.net/yjkwf/article/details/7327757

(2)



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hfreeman2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值