網頁

2012年3月14日 星期三

Android學習_Imitate iOS's delegate callback

在iOS裡面最重要的傳值莫過於delegate,雖然在Android的架構中,delegate類似的概念並不是非常重要(Activity間傳值使用Bundle),但在稍微複雜的介面上,類似delegate的概念,將可以讓程式架構切的更清楚。

所以,就在Android實作一個自己的delegate吧。
架構:


1. 建立一個interface(同等於iOS內的protocol)

package delegate;
public interface oladelegate {
public void putData(String info);
}


2. 於觸發該delegate的類別中定義一個公開變數,並且呼叫步驟一delegate定義的方法。

public class SomeClass{
public oladelegate mdelegate;

public void SomeMethod(String info) {
mdelegate.putData(info);
}
}


3. 於介面上實現delegate定義的方法。

public class OlaActivity extends Activity implements oladelegate{

private SomeClass someclass;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
someclass.selegate=this;
}
public void putData(String info)
{
//做需要的動作
}
}

如果有在iOS實作過自己delegate的人,應該會覺得非常的熟悉。

4 則留言: