在Android开发中,我在xml布局文件里使用了大量的view组件,每一个按钮都用findViewByID()方法实例化对象的话很麻烦,于是就在网上开始查找,大概有以下集中方法:katlin、Java的注解,还有今天要说到的方法。
首先要说的是,findViewById只是查找到对象的引用,不应该叫做控件的实例化,实例化是创建出一个新的对象,findViewById实际上是对View树的遍历查找,当程序中空间数量太多时,findVIewById代码将会很多,很繁琐,所以我们需要方法来简化它。
方法一:定义一个BaseActivity,所有的activity都继承这个BaseActivity,用一个$号来作为findViewById的作用, 美元符号在Java中是合法的方法名。如下图所示:
pubic class BaseActivity extends Activity{
public <T extend View> T $(int id){
return (T)findViewById(id);
}
}
当我们需要获得控件引用时只需要使用一个$符号就好
TextView iv = $(R.id.iv);
这样呢,为我们省去了很多findViewById的代码,而且不用强制转换。
方法二:使用网络上的框架,比如Android Butterknife框架,使用注解来简化findViewById
public class MyActivity extends Activity{
@InjectView(R.id.button)
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
.....
ButterKnife.inject(this);
}
}
}
只要在view上加上@InjectView注解,并在Oncreate里调用ButtonKnife.inject即可。
方法三:就是咱们说的Katiln,Katiln是什么呢?
Kotlin是什么?
Kotlin是由JetBrains创建的基于JVM的编程语言,IntelliJ正是JetBrains的杰作,而Android Studio是基于IntelliJ修改而来的。Kotlin是一门包含很多函数式编程思想的面向对象编程语言。
Kotlin生来就是为了弥补Java缺失的现代语言的特性,并极大的简化了代码,使得开发者可以编写尽量少的样板代码。
推荐两个博客简单了解一下,
http://blog.csdn.net/cuiran/article/details/50681473
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0226/4000.html
下班^_^