1. 程式人生 > >自定義介面內部類的一個簡單的使用(跨類傳值)

自定義介面內部類的一個簡單的使用(跨類傳值)

實現使用介面內部類進行跨類傳值

定義一個普通的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:海濤高軟(徐海濤)