至少在Droidio(Android Studio)中(我不知道Eclipse,但ItelliJ Idea也可能是这种情况,因为Droidio是基于它的),当你创建一个新的Activity时,也会创建一个对应的Layout文件. 默认情况下,它通过两个属性与 Activity 紧密耦合,即下面的“xmlns:tools”和“tools:context”行:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="4dip"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="hhs.app.PlatypusActivity">
这对我来说似乎很奇怪/不必要,因为 Activity 也通过这种方式自动绑定到其 *.java 文件的 onCreate() 方法中的相应布局:
setContentView(R.layout.activity_platypus);
这是一个简单的“彻底”(穿皮带和吊带)的情况,还是耦合太紧的情况?布局端(到控制器/活动)的显式接线对我来说有点代码味道。如果我从 xml 中删除两个有问题的行(“xmlns:tools”和“tools:context”),它仍然可以正常工作,所以我不明白它们的用途。
我会为我半解耦活动/布局(控制器/视图)的毫秒而感到后悔吗?