我觉得我在Android开发中不断重复这种模式:
在布局中声明UI组件
<SeekBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/seekTriggerFreq"/>
使用findViewById获取引用并对其进行强制转换
SeekBar seekTriggerFreq = (SeekBar)findViewById(R.id.seekTriggerFreq);
对于几个组件来说不是什么大问题,但是在一打组件之后就变得麻烦了。这可以使用反射、Maven或Ant等自动化吗?也许一个构建脚本生成一个类与静态引用为您?
更新:期望的行为将类似于Visual Studio为其设计者工作的方式。winforms、xaml和asp.net中的控件都可以使用,而无需手动获取引用。我懒吗?是的。但是我也知道,我的自动化程度越高,我的bug就会越少。
AndroidAnnotations是一个免费的开源库,可以代替
SeekBar seekTriggerFreq = (SeekBar)findViewById(R.id.seekTriggerFreq);
@ViewById
SeekBar seekTriggerFreq;
在他们的网站上有更多关于如何用注释替换样板代码的例子
就声明…SeekBar seekTriggerFreq;//全局声明
,然后初始化。seekTriggerFreq = (SeekBar)findViewById(R.id.seekTriggerFreq);//在任何第一次调用函数中进行初始化并使用"seekTriggerFreq"的次数为你想要的