Android監聽——變數的變化
阿新 • • 發佈:2019-01-25
這是對上一篇的補充:
如何合理的監聽程式中一個變數的變化。
有時候,我們在程式中會設定一個變數作為標誌,而程式需要監聽這個標誌,當這個標誌發生改變時,程式做出相應的處理。
主要的程式碼解釋如下:
1、將變數放置在一個類中,在該類中對變數有get 、set方法,並在set方法中做回撥。
2、在這裡,我們還提供一個方法供程式傳入監聽介面。
3、將類的引用作為單例,便於後續設定監聽位置。
package com.example.broadcastwithobserver; public class Var { private BroadListener broadListener; private int var; private static Var varInstance; private Var(){ } public static Var getInstance(){ if(null==varInstance) { varInstance=new Var(); } return varInstance; } public void setBroadListener(BroadListener broadListener){ this.broadListener=broadListener; } /** * @return the var */ public int getVar() { return var; } /** * @param var the var to set */ public void setVar(int var) { this.var = var; if(null!=broadListener){ if(var==1){ broadListener.onSuccess(); } else { broadListener.onFail("收到失敗回覆"); } } } }
使用監聽方式如下:
Var.getInstance().setBroadListener(new BroadListener() { @Override public void onSuccess() { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "監聽器接收到廣播了!!!", 0).show(); } @Override public void onFail(String msg) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this,msg, 0).show(); } });
當我們做如下操作時,監聽就起效,做出回調了:
Var.getInstance().setVar(0);