2018-03-09—AS目录结构,TextView、Butto
上次第一次使用Android Studio创建了一个hello World项目是不是很开心,今天我们在上次基础上使用几个简单的小控件。
还记得我昨天说的activity_main.xml布局存放的位置吗?没错就在***\app\src\main\res\layout目录下。我们点双击点开activity_main.xml,在下面有一个叫做Text的地方
里面很多恶心的东西对吧-。+,不着急,我们慢慢看,从我们需要的开始看起。
我们首先来看这个<TextVIew这个标签
我建议把他打成这样的,看着就很明显了。
我把这个/>打到了下一行,没错,他跟<TextView是一对的,TextView是一个控件,在.xml文件中,最基础的控件格式就是<????/>(当然有复合的控件,就是控件嵌套,这个以后再讲,我们先从最简单的开始),而尖括号里面的就是他的一系列属性,当然不止这些属性,还有很多我们可能用不到。
首先来看这个layout_Width,这个是指这个控件的宽度,他默认是wrap_content,英文翻译是包裹仅满足,而这个在程序中的意思就是指自动适应大小,他的大小会根据你textview的文字量来调整。其实我们还可以自定义他的大小,我们可以直接指定他是多少dp
这是我们一开始的样子
我把它指定成20dp
发现了吗,他被挤压成长的了。。因为我们指定他的长度为20dp,而他的高(下面那个属性layout_height属性)还是wrap_content,所以会被拉长。
下面的一个属性text,是指我们输入的文字是什么,我们输入什么,TextView就会显示什么。这个不谈了。
在下面的四个属性我们暂时不用管,以后讲布局的时候再说。
接下来我们看一看另一个控件Button。
button在英语中有按钮的意思,没错他在android中就是一个按键,我们平时最常用的QQ微信里面有很多按键(登录、注册、发送消息、等等很多),他们不同按键都有各自不同的功能,很神奇吧。。实现什么功能使我们自己来完成的,下面我们来看看这个控件。
根据上面的<TextView/>,我想大家应该知道怎么通过代码在.xml文件中创建控件了吧(为什么要这么说呢,因为我们可以不用代码来创建,而且也不只是在.xml文件中可以创建控件,这个以后再讲),
可以看得出来,我们的AS已经很智能了,但是还是不要过分依赖,因为这些只是简单的控件,有很多名字长到让你吐的,所以为了以后能手写代码,还是自己全敲出来吧。
我们点enter后,发现他自动写出来这两个属性,那我们不客气了,直接enter
看到了吧,左上角有一个灰白色的框框,这个就是我们的button按键,有些空对吧,我们给他添加几个文字,TextView是怎么修改文字的,这个button应该也会了吧(注意,不是所有的控件都有text这个属性)。
修改成了这个样子,我相信你现在也能弄成这样。
打开我们的模拟器,来看看模拟器上是什么样子的。相信程序烧完之后你就在模拟器上狂点这个按键-。+,但是好像没什么用,只有按下去的动作是吧。来,我们来搞一个让他能干点事情。
对了,在这之前,我们还要讲另一个属性,这个id属性。
这个属性是所有空间都会有的一个属性。现在是一个button,如果两个呢,如果有好多个呢,你怎么区分?咱们每个人都有自己的身份证对吧。这个id属性就相当于每个控件的身份证,他可以告诉我们我们正在操纵的是哪个控件。
咱们弄了这么久还没有玩过java代码对吧,现在可以了哦。
希望你现在还能找到MainActivity这个文件。
双击点开以后,是不是很亲切。
虽然我们是学过java的,也能看懂一些语法,但是这些类到底是干什么的我们还是不懂对吧,还是那句话,慢慢来,不要着急。
首先我们看到我们自己创建的MainActivity是继承了AppCompatActivity这个控件(他是什么以后说),然后里面重写了onCreate这个方法。我们所有的activity都是从onCreate这个方法开始的。
这个代码里面还有很多看不懂的东西吧,打住,我们今天只需要了解到这里,够我们今天用就行了。
现在我在MainActivity里面创建一个TextView对象和一个Button对象。
很简单对吧。现在这两个对象应该是空引用(不要问我为什么,自己补java去-。+),注意我们接下来的步骤
记不记得刚才说的id了,我们这两行代码就是为了获取刚才在.xml文件中创建的两个控件的id,我们在java中拿到了这两个id,现在mTV和mBut这两个对象已经指向了.xml中的两个控件,我们可以通过方法对他们进行一系列操纵。
这一下添加的是不是有点多-。+,没事慢慢捋一捋,首先我们是调用了mBut的一个方法setOnClickListener,里面的参数是一个匿名内部类OnCLickListener,(关于匿名内部类的知识点,自己回去补吧)。他是一个接口,而我们实现了这个接口,在onCLick方法里面,我们写什么,这个button就实现了什么功能,现在我们实现一个很简单的功能。
我们调用了mTv的setText方法,这个方法会把我们TextView里面的文字修改为现在的文字。run一下模拟器,看一看现在是什么样子。
看到了吗,点击了按键以后,我们的TextView改变了,变成了这些文字。是不是很有意思呢。