Android编程权威指南1.5 从布局XML到视图对象_Android编程权威指南1.5 从布局XML到视图对象试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Android编程权威指南 > 1.5 从布局XML到视图对象

Android编程权威指南——1.5 从布局XML到视图对象

想知道activity_quiz.xml中的XML元素是如何转换为视图对象的吗?答案就在于Quiz- Activity类。 在创建GeoQuiz项目的同时,也创建了一个名为QuizActivity的Activity子类。QuizActivity类文件存放在项目的src目录下。目录src是项目全部Java源代码的存放处。 在包浏览器中,依次展开src目录与com.bignerdranch.android.geoquiz包,显示其中的内容。然后打开QuizActivity.java文件,逐行查看其中的代码,如代码清单1-4所示。 代码清单1-4 QuizActivity活动的默认类文件(QuizActivity.java) package com.bignerdranch.android.geoquiz; (如果无法看到全部类包导入语句,请单击第一行导入语句左边的⊕符号,从而显示全部导入语句。) 该Java类文件包含两个Activity方法:onCreate(Bundle)和onCreateOptionsMenu(Menu)。 暂不用理会onCreateOptionsMenu(Menu)方法,第16章会详细介绍它。 activity子类的实例创建后,onCreate(Bundle)方法将会被调用。activity创建后,它需要获取并管理属于自己的用户界面。获取activity的用户界面,可调用以下Activity方法: 通过传入布局的资源ID参数,该方法生成指定布局的视图并将其放置在屏幕上。布局视图生成后,布局文件包含的组件也随之以各自的属性定义完成实例化。 资源与资源ID 布局是一种资源。资源是应用非代码形式的内容,比如图像文件、音频文件以及XML文件等。 项目的所有资源文件都存放在目录res的子目录下。通过包浏览器可以看到,布局activity_ quiz.xml资源文件存放在res/layout/目录下。包含字符串资源的strings文件存放在res/values/目录下。 可使用资源ID在代码中获取相应的资源。activity_quiz.xml文件定义的布局资源ID为 R.layout. activity_quiz。 在包浏览器展开目录gen,找到并打开R.java文件,即可看到GeoQuiz应用当前所有的资源ID。R.java文件在Android项目编译过程中自动生成,遵照该文件头部的警示,请不要尝试修改该文件的内容,如代码清单1-5所示。 代码清单1-5 GeoQuiz应用当前的资源ID(R.java) 可以看到R.layout.activity_quiz即来自该文件。activity_quiz是R的内部类layout里的一个整型常量名。 这们定义的字符串同样具有资源ID。目前为止,我们还未在代码中引用过字符串,但如果需要,则应该使用以下方法: Android为整个布局文件以及各个字符串生成资源ID,但activity_quiz.xml布局文件中的组件除外,因为不是所有的组件都需要资源ID。在本章中,我们只用到两个按钮,因此只需为这两个按钮生成相应的资源ID即可。 要为组件生成资源ID,请在定义组件时为其添加上android:id属性。在activity_quiz.xml文件中,分别为两个按钮添加上android:id属性,如代码清单1-6所示。 代码清单1-6 为按钮添加资源ID(activity_quiz.xml) 请注意android:id属性值前面有一个+标志,而android:text属性值则没有,这是因为我们将要创建资源ID,而对字符串资源只是做了引用。 保存activity_quiz.xml文件,重新查看R.java文件,确认R.id内部类中生成了两个新的资源ID,如代码清单1-7所示。 代码清单1-7 新的资源ID(R.java)

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Android编程权威指南》其他试读目录

• 1.1 应用基础
• 1.2 创建Android项目
• 1.3 Eclipse工作区导航
• 1.4 用户界面设计
• 1.5 从布局XML到视图对象 [当前]
• 1.6 组件的实际应用
• 1.7 使用模拟器运行应用
• 1.8 Android编译过程