好久没更,今天分享一个我的代码习惯吧.
当控件很多的时候,找控件这件事是非常繁琐的,
就象这样
private TextView tv;
...
tv = (TextView)findViewbyId(R.id.tv);
一行也很长,虽然有提示,强制转换也可以用快捷方式,但是还是觉得麻烦而且看着不舒服
很久之前对于还没用惯提示的我,对这种常用又很长的代码,比如
findViewbyId(R.id.);
Log.i("tag","");
Toast.makeText(this,"",Toast.SHORT).show();
...
- 选择使用输入法的快捷输入功能,比如打ffff就是findViewbyId(R.id.);llll就是Log.i(“tag”,”“);tttt就是Toast.makeText(this,”“,Toast.SHORT).show();具体输入法的功能怎么用请百度.但是之后出现了个问题,就是中英文输入老来回转换也很麻烦;
- 就出现了接下来的方法,也是常用的方法,把Log和Toast等等等自己封装在MyUtil里,每个工程都把它放进去,那么findviewbyid呢
- 先说一下原理,强制转换是因为找到的控件都是View类,但是定义的变量是控件的类型,但是控件都是继承View的所以我们先建一个BaseActivity类extends Activity
public class BaseActivity extends Activity {
public <T extends View> T $(int id) {
return (T) findViewById(id);
}
}
这里说明一下,$这个符号是java承认的变量名符号
4. 之后让你的所有Activity都继承BaseActivity,然后就变成了这个样子
public class MainActivity extends BaseActivity{
private TextView tv;
...
tv= = $(R.id.tv);
}
最后说一下用框架映射的方式简化找控件的方式真心不推荐,影响了软件的运行效率.