ButterKnife 安卓程式猿的一大利器

2021-09-06 15:53:27 字數 2473 閱讀 5923

注:近期才看到的這個類庫,來自於jakewharton大神的力作,安卓裡面的檢視注入庫

另小弟水平有限,翻譯的不好,還請多多指正

進去後首先看到的是關於使用方法的解說,翻譯部分正式開始(通俗且精簡化,建議對比著看)!

class exampleactivity extends activity 

}

class exampleactivity extends activity 

}

class exampleactivity extends activity 

}

public void inject(exampleactivity activity)

public class fancyfragment extends fragment 

}

public class myadapter extends baseadapter  else 

holder.name.settext("john doe");

// etc...

return convertview;

} static class viewholder

}}

-當使用activity作為view root節點時,你假設使用的是像mvc設計模式,你能夠將控制器注入,使用它的acitvity並通過butterknife.inject(this, activity)方法

-將乙個子view物件字段注入,使用butterknife.inject(this)(在前面樣例的

oncreate方法中就是,不懂的能夠參考這個

),假設你在乙個layout

的構造方法中使用標籤而且,

inflate了乙個自己定義view,馬上呼叫這種方法。或者,假設是從xml中inflate自己定義view,

能夠使用這種方法---

onlayoutinflated()

@onclick(r.id.submit)

public void submit()

@onclick(r.id.submit)

public void sayhi(button button)

@onclick()

public void pickdoor(doorview door) else

}

public class fancyfragment extends fragment 

@override void ondestroyview()

}

@optional @injectview(r.id.might_not_be_there) textview mightnotbethere;

@optional @onclick(r.id.maybe_missing) void onmaybemissingclicked()

view view = layoutinflater.from(context).inflate(r.layout.thing, null);

textview firstname = butterknife.findbyid(view, r.id.first_name);

textview lastname = butterknife.findbyid(view, r.id.last_name);

imageview photo = butterknife.findbyid(view, r.id.photo);

com.jakewharton

butterknife

4.0.1

使用注入會導致proguard 覺得變數未被使用,因此,須要在proguard 中增加例如以下字段

-dontwarn butterknife.internal.**

-keep class **$$viewinjector

-keepnames class *

判斷安卓程式是否高危程式。

apk許可權詳細對照表 您的位置 基於網路的 粗略位置 隱私權限 您的位置 精準的 gps 位置 隱私權限 您的位置 使用模擬地點 進行測試 您的帳戶 作為帳戶身份驗證程式 網路通訊 建立藍芽連線 系統工具 藍芽管理 需要您付費的服務 直接撥打 號碼 付費 硬體控制項 拍照 系統工具 更改使用者介面...

安卓應用程式部分

android 應用程式有鬆散耦合的元件組成,並使用程式manifest繫結在一起,應用程式manifest秒速了每乙個元件他們之間的互動方式,還用於指定應用陳旭資料來源 其硬體和平台要求 外部庫以及必須的許可權 activity應用程式表示層 service應用程式中不可見的工作這。被用於執行一些...

安卓應用程式混淆

應用程式混淆 防止程式被反編譯。步驟 1.將專案下的 project.properties 檔案的 proguard.config tools proguard proguard android.txt proguard project.txt 行取消注釋。並修改為 proguard.config ...