自定義介面內部類的一個簡單的使用(跨類傳值)
阿新 • • 發佈:2018-12-23
實現使用介面內部類進行跨類傳值
定義一個普通的Java類:
package com.example.shiyan;
public class haitao {
private static haitao instance;
hhCallBack call;
private haitao() { //構造方法私有,拒絕通過new關鍵字方式建立類的例項
}
public static haitao generate() { //單例模式
if (instance == null) {
instance = new haitao();
return instance;
}
return instance;
}
public void chuFa(){ //相當於C#中事件觸發
if(call!=null){
call.xianshi("xuhaitao", 35);
}
}
public void bangDing(hhCallBack callBack){ //相當於C#事件的繫結
call=callBack;
}
public interface hhCallBack { //相當於C#定義一個事件
public void xianshi(String name, int age);
}
}
MainActivity程式碼:
package com.example.shiyan;
import com.example.shiyan.haitao.hhCallBack;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
haitao tt;
hhCallBack kkBack = new hhCallBack() {
@Override
public void xianshi(String name, int age) {
Log.i("xuhaitao","hunk xu");
Log.i("xuhaitao",name);
Log.i("xuhaitao",age+"");
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tt = haitao.generate();
tt.bangDing(kkBack); //繫結具體的方法
tt.chuFa();
}
}
列印結果:
FR:海濤高軟(徐海濤)