1. 程式人生 > >interface 介面回撥簡單模板

interface 介面回撥簡單模板

文章目錄

1、功能簡介

方便在不同類,不同activity之間進行資料傳遞

檔案結構:

在這裡插入圖片描述

Mainactvity 向 Message 裡面傳資料,Message 處理後,通過介面將處理過後的資料返回到 MainActivity

2、MainActivity 檔案

package com.example.ubuntu.myinterface;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity implements Message.MessageChagneCallBackListening {

    private  String TAG = "MainActivity: ";
    private Message message;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        message = new Message();  //例項化 message 物件
        message.setOnMessageChangeListening(this); //傳遞監聽示例物件,結果回撥到這個類裡面的方法

        Log.i(TAG,"傳遞原始資料");
        message.changeMesaage("Hello word"); //傳遞 資料處理
    }

    @Override
    public void sendMessage(String msg) {
        Log.i(TAG , "介面回撥返回結果: " + msg);
    }
}

3、Message 檔案

package com.example.ubuntu.myinterface;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

public class Message {

    private String TAG = "Message: ";

    private MessageChagneCallBackListening messageChagneCallBackListening;

    public Message(){

    }

//主要就是 這一點 將例項化的 物件,傳遞進來
    public void setOnMessageChangeListening (MessageChagneCallBackListening messageChangeListening ){
        this.messageChagneCallBackListening = messageChangeListening;
        Log.i(TAG,"傳遞監聽的例項化物件: " + messageChangeListening);
    }


    public void changeMesaage(String msg){
        Log.i(TAG,"傳進來的 msg : " + msg);

        String msgResult = "資料處理:`````" + msg;

        Log.i(TAG,"返回的處理結果:" + msgResult);
        messageChagneCallBackListening.sendMessage(msgResult);
    }

    //定義及一個介面用來傳遞資料   介面可以單獨寫在一個檔案裡
    interface MessageChagneCallBackListening{
        void sendMessage(String msg);
    }


}

4、log 列印

在這裡插入圖片描述

檔案參考:

介面回撥基礎理解
https://blog.csdn.net/qq_39085422/article/details/78453788

JAVA介面回撥詳解
https://blog.csdn.net/hbyh632/article/details/78592242

Java介面回撥一般用法
https://blog.csdn.net/jonsnoww/article/details/68932292