媒介
今天我们一块来聊聊项目常用的findViewById,这个器械可以简单懂得为:初始化控件,实例化控件,便利进行其他操作。一般来说,我们平日这么写:
经由过程注解方法简化findViewById
瞧瞧运行结不雅,毛主席曾经说过:实践是考验真谛的独一标准
- private void initView() {
- TextView tvTest = (TextView) findViewById(R.id.id_test);
- }
膳绫擎的例子很简单,只是初始化一个TextView,然则在实际项目中,每个Activity,Fragment或者Adapter中有n个控件,每个控件都须要我们实例化控件,才能对其进行操作,一次次的findViewById,感到好烦呐~!
有没有好办法呢?当然有很多种方法,然则我们要找合适本身项目标,下面将会为大年夜家依次举例解释~
在前几年,Xutils比较火爆,火爆的原因有很多,简单列举下,LZ更看好Xutils应用便利,至少为我们封装了很多常用的对象,就比如常用的恶心的图片处理,Xutils有很好的支撑,同样,Xutils也支撑注解方法去简化findViewById,简单举例如下:
- // xUtils的view注解请求必须供给id,以使代码混淆不受影响。@ViewInject(R.id.id_test)
- TextView tvTest ;
- <?xml version="1.0" encoding="utf-8"?>
- <layout xmlns:android="http://schemas.android.com/apk/res/android">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <TextView
- android:id="@+id/id_test"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- <ImageView
- android:id="@+id/iv_test"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
- </LinearLayout></layout>
比较出名的ButterKnife,之前LZ也对此专门进修了下,相干文┞仿地址如下:
《一篇文┞仿玩转ButterKnife,让代码更简洁》
同劳R单举例如下:
- @BindView(R.id.id_test)TextView tvTest;
以上简单为大年夜家列举俩种,至少是LZ用到过的,当让有关支撑注解方法的好用的还有很多,迎接大年夜家交换,一路进修~
小我封装findViewById
简单修改之后,经由过程测试,感到还不错,下面为大年夜家附上源码:
那么我们该若何应用呢?简单说下,调用有如下俩种方法:
- 经由过程链式调用,你可以直接调用封装好的setText or setImgResource进行直接赋值;
- 经由过程链式调用getView获取控件实例,然落后行响应操作即可。
- FindView.with(this).setTextContent(R.id.id_test, "Hello").setImageResource(R.id.iv_test,R.mipmap.ic_launcher);
推荐阅读
产学研一体化,催生聪明应用模式 “郑州大年夜六、七年前就开端做数字城市,然则它的数据信息是静止的,二维的。和数字城市比拟,聪明城市请求是可测量、可感知、可分析、可视化的,也>>>详细阅读
本文标题:Android Study之findViewById变迁之路
地址:http://www.17bianji.com/lsqh/35987.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示