调用:

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.example.propertytest.bean.MainBean;

// 调用的时候必须实现PropertyChangeListener接口
public class MainActivity extends Activity implements PropertyChangeListener{ private TextView text; MainBean mBean; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); text = (TextView) findViewById(R.id.textview);

    // 创建Bean的实例且添加属性监听器
mBean = new MainBean();
mBean.addPropertyChangeListener(this);
} public void btn(View v){
// 触发属性改动的方法
mBean.setName("yoyo");
}

  // 这个方法被通知属性改变
@Override
public void propertyChange(PropertyChangeEvent event) {
System.out.println(event.getNewValue().toString());
System.out.println(event.getOldValue().toString());
} @Override
protected void onDestroy() {
// TODO Auto-generated method stub
mBean.removePropertyChangeListener(this);
super.onDestroy();
}
}

Bean类:

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; public class MainBean { private String name = "123"; public String getName() {
return name;
} public void setName(String name_) {
String oldValue = name;
name = name_;
     // 向外通知属性改变方法,会自动调用propertyChange方法
changeSupport.firePropertyChange("name", oldValue, name);
}

  // 创建一个PropertyChangeSupport实例
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

  // 添加属性监听器
public void addPropertyChangeListener(PropertyChangeListener l) {
changeSupport.addPropertyChangeListener(l);
}

   // 移除属性监听器
public void removePropertyChangeListener(PropertyChangeListener l) {
changeSupport.removePropertyChangeListener(l);
}
}

最新文章

  1. BZOJ 1036: [ZJOI2008]树的统计Count [树链剖分]【学习笔记】
  2. SOAP(简单对象访问协议)
  3. 2.3 ARM寄存器详解
  4. [转]IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)
  5. 九、DAG hierarchy
  6. linux开机启动服务和chkconfig使用方法(自定义服务路径启动)
  7. 夺命雷公狗---Thinkphp----7之栏目配合Model的增删改查
  8. 36. Valid Sudoku
  9. (转)IIS7 优化-网站请发并发数
  10. IO负载高的来源定位
  11. 使用c#生成Identicon图片
  12. Top 10 Uses of a Message Queue
  13. 模糊集合和隶属度函数--AForge.NET框架的使用(一)
  14. AES加密 C++调用Crypto++加密库 样例
  15. Android学习路径(两)项目文件本身使用场景和文件演示
  16. CSS3秘笈:第七章
  17. TypeScript和JavaScript哪种语言更先进
  18. 为什么大多数培训机构还停留在只教ssh框架?
  19. mysql主键,外键,索引
  20. sonyflake.go

热门文章

  1. bms_output.put_line使用方法
  2. 自定义Adapter为什么会重复多轮调用getView?——原来是ListView.onMeasure在作祟
  3. python学习day4软件目录结构规范
  4. 百度地图API--Key的获得
  5. Yii2之控制台命令篇(console)
  6. Hadoop整理五(基于Hadoop的数据仓库Hive)
  7. 在Notepad++上搭建Windows下Shell运行环境
  8. CSUOJ 1956 数字和
  9. Java 中的国际化
  10. HDU 6103 Kirinriki (思维 双指针)