实现使用接口内部类进行跨类传值
定义一个普通的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:海涛高软(徐海涛)
新闻热点
疑难解答