为什么XML ID的名称约定与Java的约定不同?
我看了几个Android项目。 为什么通常的做法是使用带有下划线的小写字母来表示XML ID?
在XML中:
@+id/name_text <!-- sometimes with "_view" suffix, sometimes without -->
在Java中:
TextView nameTextView = // ...
我会建议以下ID: @+id/nameTextView
那实际上是我怎么做的。 缺点是什么?
特别是如果XML ID和字段名称遵循相同的模式,则数据绑定可能会更短(例如,使用ButterKnife)。 在这种情况下,我们可以忽略注释中的XML ID:
@BindView TextView nameTextView;
Java还没有这样的功能,但对于Kotlin: Kotlin Android扩展 。
如果您的视图是这样声明的(在activity_main.xml中 ):
<TextView android:id="@+id/hello" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, MyActivity" />
你可以像这样在你的活动中使用它:
hello.setText("Hi!")
唯一要做的就是把这个添加到你想使用视图的Kotlin文件中:
import kotlinx.android.synthetic.main.activity_main.*
当然在您的项目本地build.gradle文件中添加依赖项:
apply plugin: 'kotlin-android-extensions'