在Android中更改变量的侦听器

巴哈尔阿扎鲁图斯

我班上有一个变量,我希望当该变量更改时,我在另一个班上做一个动作。实际上,我想要一个侦听器来更改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)

} 
Heinzi

无法直接进行。但是,您可以将字段设为私有,添加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);
     }
}

然后,无论您想监听布尔值的变化,都可以注册一个监听器:

Connect.addMyBooleanListener(new ConnectionBooleanChangedListener() {
    @Override
    public void OnMyBooleanChanged() {
        // do something
    }
});

剩下的练习是添加删除监听器的方法。显然,要使其正常工作,您需要确保myBoolean仅通过进行更改setMyBoolean,即使在中也是如此Connect

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章