2015年6月9日 星期二

Android-自定義 CallBack 行為( Default Callback )

相信各位開發大大們對 CallBack 一定不陌生吧!
不管是 按鍵、藍芽、GPS...等,都一定要實作。
但 CallBack 能夠自定義裡面的傳輸內容嗎?
答案是可以的。

最常見的例子 : 跑背景、非同步執行...等。

這裡就舉簡單的範例,利用 Button 去觸發

1 . 回傳格式介面

public interface HelloCallBack {

    public void success(String strSuccess);
    
}

2 . 回傳內容設定

public class Hello {

    public HelloCallBack _helloCallBack;

    public Hello(HelloCallBack helloCallBack){
        this._helloCallBack = helloCallBack;    
    }
    
    public void speak(){
        // 回傳內容
        _helloCallBack.success(""+(int)(Math.random()*42+1));
    }
    
}

3 . 如果有被 CallBack 觸發(可改為計時),TextView就會被更新

public class MainActivity extends Activity implements OnClickListener, HelloCallBack{

    private TextView textView1;
    private Button btn;

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

        textView1 = (TextView) findViewById(R.id.textView1);
        btn = (Button) findViewById(R.id.button1);

        btn.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        new Hello(this).speak();
    }

    @Override
    public void success(String strSuccess) {
        textView1.setText(strSuccess);        
    }

}


歡迎轉載,請註明出處。

沒有留言:

張貼留言