在Android獲取一個View一般都是透過如下方式:
TextView textView = (TextView) findViewById(R.id.textview);
相信大家都寫過無數次findViewById了吧,每次都要Cast一下是否很不爽啊。今天就來介紹三種簡便的方法避免這種Cast
-
第一種
在專案基類BaseActivity中新增如下函式:
然後就可以透過如下方式獲取View了:
-
第二種
第一種方法只在Activity裡有效,其實我們經常在其他View或者Fragment裡也常用findViewById方法,當然你可以把上述方法copy一遍,但是這違反了面向物件基本的封裝原則,有大神封裝了一個ViewFinder類,具體程式碼可以見我Gist上的檔案ViewFinder.java (https://gist.github.com/stormzhang/37dc0b94be61eb6c015c), 使用的時候你只需要在你的Activity或者View裡這樣使用:
-
第三種
前兩種方法本質上是利用了泛型,還有一種利用註解的方式,使用起來更方便,不僅省事的處理了findViewById,甚至包括setOnClickListener這種方法也能很方便的呼叫,具體見我這篇部落格ButterKnife–View註入框架
點選”閱讀原文“即可檢視ButterKnife部落格