下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

深入学习Android第一个应用程序扩充

作者:课课家教育     来源: http://www.kokojia.com点击数:698发布时间: 2016-04-08 09:50:45

标签: 学习AndroidAndroid程序开发Android应用程序

  深入学习Android第一个应用程序扩充。

      在此之前我们学习了Android第一个应用程序的创建与详细的说明后,现在我们深入学习Android的第一个应用程序的扩充。一般情况下,系统都会为我们自动创建第一个应用程序,那么现在来看看如何对这个程序进行一些简单的扩充。从前面的说明中可以看出,要完成Activity程序界面的显示,那么一定会使用到布局文件,也就是说Activity程序和布局相关的配置是有非常紧密的联系的。

深入学习Android第一个应用程序扩充_学习Android_Android程序开发_Android应用程序_课课家

  在Activity中我们可以通过R.java来获取组件,也可以在Activity中动态生成组件。如果要获取组件,那么就需要为组件配置ID,下面我们对main.XML进行简单的扩充,添加几个组件。

  Xml代码

  我们仍然使用线性布局管理器,schema声明不做说明,layout_width就是布局宽度,这里的fill_parent表示填充整个屏幕,也就是屏幕宽度。同样的道理,layout_height表示布局高度,这里也就是屏幕高度。orientation表示组件的排列形式,也就是水平和竖直排列,这里使用的竖直纵向排列。

  在该布局管理器中,添加了三个组件,两个TextView和一个Button,首先我们需要为每个组件添加ID,这样便于在程序中进行控制,要注意的是ID的命名格式,必须是@+id/开头,斜杠后面跟上这个组件的ID值即可。每个组件都有layout_width,这里使用组件的包裹长度wrap_content,这个是不会充满屏幕宽度。同理layout_height使用了包裹组件的高度,也不会充满整个屏幕。

  这里我们加了几个字符串值,strings.xml修改如下:

  Xml代码

  这里要多说一点的就是对“进行转义“输出,需要加反斜线。然后运行程序,在模拟器中我们可以看到:

  三个组件的实际运行效果如下面我们就看到的,如果想看横屏显示效果时,在模拟器中可以同时按下CtrlF11键即可,显示效果如下:

  再次按下CtrlF11即可切回竖屏,但可能某些模拟器中从横屏切回竖屏时显示效果回不来,比如:

  此时,按下Esc退出到应用程序列表,选择我们的程序,重新进入即可:

  下面,将Button的layout_height调整为fill_parent,我们来看看会得到怎样的效果:

 

  就是说使用了fill_parent,组件会自动将屏幕下方剩余的区域全部填充完整个屏幕。

  我们再回到R.java中来看看程序为我们自动生成了哪些资源:

  Java代码

  我们添加的string资源都已经反映到了R.java的静态类string中,可以通过R.string.hello等即可调用我们设置的字符串资源。而三个组件的ID,也反映到了静态类id中。那么,我们就可以通过Activity程序对它们进行控制了。修改Activity程序如下:

  Java代码

  在这里先不详细说生命周期方法和设置布局管理器,这里强调的就是必须先设置一下布局管理器,之后我们才能获得其中配置的组件,如果setContentView()放在了最后一行,那么获取组件的操作都会失败。

  我们使用父类Activity的findViewById()方法可以获取到我们以后的组件,该方法的返回值是View类型,也就是所有视图组件的父类,比如这里通过R.id.text1获取第一个TextView组件,那么进行强制类型转换即可拿到。

  对于text1,我们进行了显示文字的设置,这里我们设置为“你好”,就会覆盖掉之前的“Hello World, HelloAndroidActivity!”。之后我们再获取Button组件,原理同上,拿到后我们也修改显示文字,但这里不是直接使用字符串赋值,而是通过R.string.btn_text_zh的方式进行,也就是通过R.java去配置文件中找到替换的文本,那么我们在strings.xml里再加一行:

  Xml代码

  我们来看看下面运行程序的效果:

  我们现在实现了在Activity程序中对已有的布局管理器中的组件进行修改。那么可以使用Activity程序来生成组件,也就是说我们通过编写Java代码来完成组件的生成,而不用在布局管理器文件中进行组件的设置,也可以不使用main.xml了,之后修改Activity程序:

  Java代码

  结合上面的注释,我们来看一下这段程序,首先我们手动创建了线性布局管理器LinearLayout,在XML文件中的布局管理器和组件中,我们都可以通过代码的形式进行编写所有配置。LinearLayout的构造方法接收一个Context类型的参数,这里我们传入的是this,说明我们的Activity类就是Context的子类,看一下类关系图:

  从上图中我们看到android.app.Activity类是android.context.Context类的子类,而我们自定义的HelloAndroidActivity类又是Activity类的子类,那么我们就可以将this传入LinearLayout的构造方法进行LinearLayout对象的构建。创建好layout之后,我们再设置一下组件的排列方式,这和写XML的配置是相同的。

  下面创建了两个TextView组件,因为TextView的构造方法也接受的是Context,那么我们仍然使用this即可,这样我们就构造出了连个TextView组件。然后我们使用调用Context类的getString()方法进行显示文字的设置,传入的参数仍然是R.java中的id,和直接传入id的效果是一样的,这里我们只是介绍一下getString()方法。

  最后创建了一个Button组件,参考Button的构造方法,也不难理解this的传入,然后进行显示文本的设置。

  最后我们将创建好的三个组件添加到布局管理器中,就是使用了三次addView()方法,之后我们设置Activity使用的布局管理器,也就是调用setContentView()方法将layout传入,之后就可以运行程序进行测试了。这和我们之前看到的效果是一致的。

  XML配置文件完全可以被Java代码动态生成组件的使用替代,但现在还没有进行设置其它的属性,代码量就已经非常大了,而且写法都是一致的,没有任何技术含量。所以使用XML文件进行视图组件的配置,也可以有效的分离显示逻辑,而程序进行控制逻辑,符合MVC设计模式

      学到这里,简单设置布局管理器的方法基本就到这里了,其他的也就不在这里多做详解,添加组件的方法上面有非常详细的说明,要好好细读上面的文章,多动手跟步骤学习,希望这篇第一个应用程序的扩充对在学习Android程序的开发有所帮助。

赞(22)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程