【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 )
文章目錄
- 總結(jié)
- 一、Android 事件設(shè)置三要素
- 二、修飾注解的注解
- 三、Android 事件依賴注入步驟
總結(jié)
Android 依賴注入的核心就是通過反射獲取 類 / 方法 / 字段 上的注解 , 以及注解屬性 ; 在 Activity 基類中 , 獲取該注解 以及 注解屬性 , 進行相關(guān)操作 ;
一、Android 事件設(shè)置三要素
根據(jù)以下設(shè)置組件點擊事件的代碼 , 分析事件注入的要素 :
textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {} });-
點擊事件 : 設(shè)置點擊事件 , 需要調(diào)用 View.setOnClickListener 方法進行設(shè)置 ;
-
監(jiān)聽器類型 : 設(shè)置監(jiān)聽器類型 , 一般是 View.OnClickListener ;
-
事件觸發(fā)回調(diào)方法 : 事件觸發(fā)后的回調(diào)方法 , 原型為 public void onClick(View v) ;
為了兼容各種事件注入 , 如長按事件 , 上述事件設(shè)置三要素分別是
- 點擊事件 : View.setOnLongClickListener
- 監(jiān)聽器類型 : View.OnLongClickListener
- 事件觸發(fā)回調(diào)方法 : public boolean onLongClick(View v)
如果要兼容各種不同的事件 , 就需要定義不同的注解 , 這里引入一個修飾注解的注解 , 為不同的時間注入注解進行配置 ;
二、修飾注解的注解
在 Java Web 開發(fā)中 , 經(jīng)常使用注解進行相關(guān)配置 , 如 Spring ;
配置 EventBase 注解 , 用于修改事件注入的注解 , 點擊事件與長按事件 , 都要使用下面的 EventBase 注解進行修飾 , 只是事件設(shè)置 333 要素設(shè)置不同 ;
package kim.hsl.ioc_lib;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 自定義注解* 用于注解上的注解* 用于依賴注入視圖*/ @Target(ElementType.ANNOTATION_TYPE) // 該注解作用于注解上 @Retention(RetentionPolicy.RUNTIME) // 注解保留到運行時 public @interface EventBase {/*** 設(shè)置事件監(jiān)聽的方法* @return*/String listenerSetter();/*** 設(shè)置監(jiān)聽器類型* @return*/Class<?> listenerType();/*** 事件觸發(fā)后的回調(diào)方法* @return*/String callbackMethod(); }使用上述注解修飾 OnClick 注解 :
package kim.hsl.ioc_lib;import android.view.View;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 自定義注解* 用于依賴注入視圖*/ @Target(ElementType.METHOD) // 該注解作用于方法上 @Retention(RetentionPolicy.RUNTIME) // 注解保留到運行時 @EventBase(listenerSetter = "setOnClickListener",listenerType = View.OnClickListener.class,callbackMethod = "onClick") public @interface OnClick {int[] value(); // 接收 int 類型數(shù)組 }三、Android 事件依賴注入步驟
Android 事件依賴注入步驟 :
- ① 聲明注解 : 聲明視圖注入注解 OnClick ;
- ② 聲明修飾注解的注解 : 聲明修飾注解的注解 EventBase , 用于配置事件 333 要素 ;
- ② 客戶端 Activity : 定義 MainActivity , 繼承 BaseActivity , 在方法上使用 @OnClick 注解注入視圖點擊事件 ;
- ③ IOC 庫中的 Activity 父類 : 定義 BaseActivity , 在 BaseActivity 中的 onCreate 方法中 , 處理依賴注入相關(guān)邏輯 ;
- ④ 依賴注入邏輯 : 獲取 Activity 類 , 并使用反射獲取類中的所有屬性字段 , 獲取所有的 @OnClick 和 @EventBase注解 , 如果找到該注解 , 執(zhí)行 setOnClickListener 設(shè)置視圖組件對象的點擊方法 ;
總結(jié)
以上是生活随笔為你收集整理的【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【IOC 控制反转】Android 视图
- 下一篇: 【IOC 控制反转】Android 事件