Bah*_*oos 3 variables events android event-listener listener
我的课程中有一个变量,我希望当变量发生变化时,我会在另一个类中执行操作.事实上我想要一个监听器来改变android中的变量(我的变量可能每分钟都在变化)
public class Connect {
public static boolean myBoolean;
//some actions do and myBoolean change
}
public class Selection extends Activity implements OnMenuItemClickListener{
//I want a thing like listener here ,when myboolean changed I do an action (myboolean may change every minute)
}
Run Code Online (Sandbox Code Playgroud)
这是不可能直接的.但是,您可以将字段设为私有,添加getter和setter,并创建添加侦听器的方法(这称为Observer模式):
interface ConnectionBooleanChangedListener {
public void OnMyBooleanChanged();
}
public class Connect {
private static boolean myBoolean;
private static List<ConnectionBooleanChangedListener> listeners = new ArrayList<ConnectionBooleanChangedListener>();
public static boolean getMyBoolean() { return myBoolean; }
public static void setMyBoolean(boolean value) {
myBoolean = value;
for (ConnectionBooleanChangedListener l : listeners) {
l.OnMyBooleanChanged();
}
}
public static void addMyBooleanListener(ConnectionBooleanChangedListener l) {
listeners.add(l);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,无论您想要监听布尔值的更改,您都可以注册一个监听器:
Connect.addMyBooleanListener(new ConnectionBooleanChangedListener() {
@Override
public void OnMyBooleanChanged() {
// do something
}
});
Run Code Online (Sandbox Code Playgroud)
添加一个删除侦听器的方法仍然是一个练习.显然,为了实现这一点,你需要确保myBoolean只通过setMyBoolean内部改变Connect.
| 归档时间: |
|
| 查看次数: |
7113 次 |
| 最近记录: |