天天看點

超簡單幾行代碼內建Fragment通信架構,封裝四個接口覆寫所有的方法帶參和傳回值情況,實作萬能接口通用,在Activity中複寫自己方法的邏輯代碼即可FunctionInterface最新版本使用方法使用示例:項目用到的權限使用指南相關介紹其它資訊作者郵箱

超簡單幾行代碼內建Fragment通信架構,封裝四個接口覆寫所有的方法帶參和傳回值情況,實作萬能接口通用,在Activity中複寫自己方法的邏輯代碼即可

通過繼承架構的 BaseFragment和BaseActivity,簡單的幾行代碼,即可實作Fragment和Activity之間的通信,讓程式更簡潔、更高效。

FunctionInterface

一個面向Fragment和Activity的萬能j通信架構,四個接口覆寫所有參數和傳回值的情況。

兩行代碼即可實作資料通信傳輸,隻用寫自己要實作的邏輯代碼即可。

官網位址

其它資訊

源碼位址

最新版本

版本号:

超簡單幾行代碼內建Fragment通信架構,封裝四個接口覆寫所有的方法帶參和傳回值情況,實作萬能接口通用,在Activity中複寫自己方法的邏輯代碼即可FunctionInterface最新版本使用方法使用示例:項目用到的權限使用指南相關介紹其它資訊作者郵箱

使用自行替換下面的版本号,以獲得最新版本。

使用方法

這裡分别介紹在不同項目環境中,如何引用對該庫的依賴。

Android中使用:

方法一:

1.第一步,在項目的build.gradle下配置,注意是項目的build.gradle:

allprojects {
	repositories {
		...
		maven { url 'https://www.jitpack.io' }
	}
}
           

2.第二步,在app的build.gradle下添加如下依賴:

dependencies {
        ...
        implementation 'com.github.YouAreOnlyOne:FunctionInterface:版本号'
        ...
 }
           

方法二:

1.第一步,下載下傳依賴的包:https://github.com/YouAreOnlyOne/FunctionInterface/blob/master/source/functioninterface-release.aar 。并放到項目的 libs 目錄下面。

2.第二步,在app的build.gradle下添加如下依賴,注意,兩個依賴是平級關系:

repositories {
   flatDir {
       dirs 'libs'
     }
}

dependencies {
        ...
        compile(name:'andfix-release', ext:'aar')
        ...
}
           

使用示例:

1、在Android項目中,在MainActivity中加載了若幹Fragment,此時需要實作通信,隻需要簡單的進行下面的步驟即可完成:

2、所有的Fragment繼承架構的BaseFragment,并在每個Fragment中定義接口名稱,注意接口名稱保證唯一,一般建議如下定義:

public static final String INTERFACE_FUNCTION_NAME = BlankFragment.class.getName()+“一個字元名稱”;

3、在Fragment中使用方法,也隻需要一行代碼進行調用,如下:

functionsManager.invokeFunction(INTERFACE_FUNCTION_NAME);

4、在MainActivity中繼承架構的BaseActivity,此時需要繼承對應的抽象方法,并在方法中使用如下兩行代碼:

@Override
public void setFunctionsForFragment(int id) {
    //下面兩行代碼是需要實作的
    BaseFragment baseFragment=(BaseFragment)fragmentManager.findFragmentById(id);
    //addFunction()中new 後面的接口,根據自己的實際需要進行選擇,如不需要參數不需要傳回值,則像下面所示,其它的四個接口可以靈活選擇
    baseFragment.setFunctionsManager(functionsManager.addFunction(new FunctionNoParameterNoResult("Fragment中對應的接口名稱,步驟2所示")));
           

此時,隻需要書寫自己方法的邏輯代碼即可,如下所示:

@Override
public void setFunctionsForFragment(int id) {
    BaseFragment baseFragment=(BaseFragment)fragmentManager.findFragmentById(id);
    baseFragment.setFunctionsManager(functionsManager.addFunction(new FunctionNoParameterNoResult(INTERFACE_FUNCTION_NAME) {
        @Override
        public void function() {
            //要實作的方法的邏輯代碼
            Toast.makeText(MainActivity.this,"test method",Toast.LENGTH_LONG).show();
        }
    }));
           

如有對網絡請求、上傳、下載下傳等相關網絡操作不熟悉的,可以參考一下下面的文章:

OkHttp 、Retrofit 、Volley 、RxJava、Novate在Android中Web網絡請求一行代碼解決。

https://blog.csdn.net/u014374009/article/details/82933127

一行代碼實作Ftp檔案上傳、檔案下載下傳、檔案删除和進度監聽的工具類的使用。

https://blog.csdn.net/u014374009/article/details/82944107

項目用到的權限

在manifest檔案中添加通路的權限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
           

使用指南

更新中……

相關介紹

一行代碼解決AndFix熱修複和熱跟更新問題,內建了阿裡的開源庫,修複程式的缺陷bug漏洞和功能頁面等.

https://blog.csdn.net/u014374009/article/details/83052178

其它資訊

1.項目還有很多不完善的地方,歡迎大家指導。

2.項目持續更新開源,有興趣加入項目或者跟随項目的夥伴,可以郵件聯系!

3.關注或者喜歡或者嘗試使用或者感興趣的夥伴可以,點選 ~ star ~ 。

作者郵箱

[email protected]

繼續閱讀