【GT-安卓應用開發之ButterKnife使用】

前言:第一次接觸到ButterKnife還是在兩年前,當時我還是使用Eclipse和MyEclipse進行JAVA後臺的開發(轉安卓僅僅出於個人興趣),利用業餘時間學習安卓開發並做一些簡單的小程序,findViewById是我經常使用的一個方法。一次偶然的機會到北京培訓,與安卓開發同事交流,並在獲得他的允許後查看了他的代碼。瞅了半天,竟然沒有找到findViewById,卻有一些@BindView之類的代碼,雖然之前也嘗試過對findViewById進行封裝,但是總是感覺沒有那麼簡潔美觀。這次經歷,讓我開始認識到了自己對於安卓開發是多麼的業餘。。。

           好了,說了這麼多廢話之後就要進入正題了,首先配置一下ButterKnife環境:

           第一步,在Project的build.gradle中添加依賴,代碼如下:

           classpath 'com.android.tools.build:gradle:2.3.3'

           classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'

           第二步,在app的build.gradle中添加依賴:

           compile 'com.jakewharton:butterknife:8.8.1'

           annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

           第三步,使用:

           在這裏,我們利用@BindView獲得一個TextView對象並修改其的值,以及添加點擊事件

           代碼如下:

public class MainActivity extends AppCompatActivity {
    @BindView(R.id.kn_tv)
    TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        tv.setText("xxx");
    }
    @OnClick({R.id.kn_tv})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.kn_tv:
                Toast.makeText(this,"Click",Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

           使用ButterKnife雖然方便,但是有以下幾個注意事項:

         1、ButterKnife.bind(this)這句代碼必須在setContentView之後纔可以使用,並且在非Activity中綁定需要ButterKnife.bind(this,view)其中this不可以換成getActivity等

                   2、在Activity中綁定後不需要手動解綁,但是在Fragment中綁定後必須在銷燬的時候解綁

                   3、不論是@BindView還是@OnClick等註解,都需要注意id、string等必須是正確存在的

                   4、使用ButterKnife需要提前安裝好插件,方法是File—Settings—搜索Zelezny找到ButterKnife插件下載並安裝—安裝完成後重啓AS

                   5、像代碼中一樣。@BindView對應的控件不可以使用public、private、static等修飾詞

        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章