android studio 2018.3.27

当你点击设备上的应用图标(JustJava),就打开了MainActivity,在我们的代码中,MainActivity的onCreate方法被系统调用,在这个方法中有一个setContentView,他是资源布局ID。在早期的练习中,我们给setContentView只传了一个TextView,但是我们想要更多的View,所以我们传入一个布局资源id,这个对应的是一个XML文件,一旦调用setContentView Activity就会找到XML布局文件,并且读取他的每行代码,他会为每个View填充或者创建一个Java对象,他遍历整个XML文件,并且建立Java对象间的层次关系,当他填充每一个View的时候,他会调用构造函数,也就是New TextView或者New LinearLayout方法,然后把这些属性传给Java对象,这样他就被设置好了。注意,我们不用给New TextView和NewLinearLayout写任何代码,也不用设置字体大小,所有的这些都是由Activity填充过程完成的

为了在应用运行时能与这些视图进行交互,并且修改他们,例如修改文本或修改按钮,那么我们需要找到Java对象,一旦我们找到他们,就可以在MainActivity中把他们转成变量。记住,我们没有在草稿中创建新的TextView,我们只是在草稿中找到现有的TextView。这是之前我们在MainActivity中用过的quantity、price和price message,这里既有局部变量也有全局变量。为了与这个视图中的View进行交互,我们应该创建变量,用来引用这些具体的View。例如我们可以创建一个新的quantity TextView,他指向这个TextView,如果你点击UI中的加减按钮,你就可以改变他的文本使他显示不同的数字。

因为TextView是一个更具体的View,或者说TextView是View的一个子类,我们可以使用类型转换。在Java中类型转换意味着我们可以把这个方法返回的View转换成一个TextView,所以现在右边已经是一个TextView对象了,然后把他存到orderSummayTextView这个变量中。findViewById方法会把对象转换成视图类型,通过写这个标记(TextView),也就是括号和里边的对象数据类型,我们就把View转换成TextView

原文地址:https://www.cnblogs.com/aliceluorong/p/8662280.html