Android复习要点Word文档下载推荐.docx
《Android复习要点Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android复习要点Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
ADT以工程名称HelloAndroid作为根目录,将所有字段生成的和非自动生成的文件都保存在这个根目录下
根目录包含四个子目录:
src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties
⏹src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中
⏹HelloAndroid工程建立初期,ADT根据用户在工程向导中的“CreateActivity”选项,自动建立HelloAndroid.java文件
4、熟悉课件3给出的HelloActivity工程的JAVA类文件,界面布局文件,AndroidManifst.xml文件。
AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
manifestxmlns:
android="
package="
edu.hrbeu.HelloAndroid"
android:
versionCode="
1"
versionName="
<
applicationandroid:
icon="
@drawable/icon"
label="
@string/app_name"
activityandroid:
name="
.HelloAndroid"
intent-filter>
actionandroid:
android.intent.action.MAIN"
/>
categoryandroid:
android.intent.category.LAUNCHER"
/intent-filter>
/activity>
/application>
uses-sdkandroid:
minSdkVersion="
3"
/manifest>
AndroidManifest.xml文件的根元素是manifest,包含了xmlns:
android、package、android:
versionCode和android:
versionName共4个属性
xmlns:
android定义了Android的命名空间,值为
package定义了应用程序的包名称
android:
versionCode定义了应用程序的版本号,是一个整数值,数值越大说明版本越新,但仅在程序内部使用,并不提供给应用程序的使用者
versionName定义了应用程序的版本名称,是一个字符串,仅限于为用户提供一个版本标识
5、课件4:
Android系统四个重要组件,Activity的生命周期。
⏹程序的生命周期
❑程序的生命周期是在Android系统中进程从启动到终止的所有阶段,也就是Android程序启动到停止的全过程
❑程序的生命周期由Android系统进行调度和控制的
⏹Android系统中的进程优先级由高到低
❑前台进程
❑可见进程
❑服务进程
❑后台进程
❑空进程
⏹Android系统有四个重要的组件,分别是Activity、Service、BroadcaseReceiver和ContentProvider
⏹Activity生命周期
❑Activity生命周期指Activity从启动到销毁的过程
❑Activity表现为四种状态,分别是活动状态、暂停状态、停止状态和非活动状态
⏹活动状态,Activity在用户界面中处于最上层,完全能不用户看到,能够与用户进行交互
⏹暂停状态,Activity在界面上被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互
⏹停止状态,Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡
⏹非活动状态,不在以上三种状态中的Activity则处于非活动状态
⏹Activity生命周期分类
❑Activity的生命周期可分为全生命周期、可视生命周期和活动生命周期
❑每种生命周期中包含不同的事件回调函数
⏹全生命周期
❑全生命周期是从Activity建立到销毁的全部过程,始于onCreate(),结束于onDestroy()
⏹可视生命周期
❑可视生命周期是Activity在界面上从可见到不可见的过程,开始于onStart(),结束于onStop()
❑onStart()一般用来初始化或启动与更新界面相关的资源
❑onStop()一般用来暂停或停止一切与更新用户界面相关的线程、计时器和服务
❑onRestart()函数在onSart()前被调用,用来在Activity从不可见变为可见的过程中,进行一些特定的处理过程
❑onStart()和onStop()会被多次调用
❑onStart()和onStop()也经常被用来注册和注销BroadcastReceiver
⏹活动生命周期
❑活动生命周期是Activity在屏幕的最上层,并能够与用户交互的阶段,开始于onResume(),结束于onPause()
❑在Activity的状态变换过程中onResume()和onPause()经常被调用,因此这两个函数中应使用更为简单、高效的代码
❑函数的调用顺序:
onCreate()→onStart()→onResume()→onPause()→onStop()→onDestroy()
▪调用onCreate()函数分配资源
▪调用onStart()将Activity显示在屏幕上
▪调用onResume()获取屏幕焦点
▪调用onPause()、onStop()和onDestroy(),释放资源并销毁进程
onSaveInstanceState()→onPause()→onStop()→onRestart()→onStart()→onResume()
⏹调用onSaveInstanceState()函数保存Activity状态
⏹调用onPause()和onStop(),停止对不可见Activity的更新
⏹调用onRestart()恢复需要界面上需要更新的信息
⏹调用onStart()和onResume()重新显示Activity,并接受用户交互
❑函数调用顺序如下:
onSaveInstanceState()→onPause()→onResume()
⏹调用onSaveInstanceState()保存Activity的状态
⏹调用onPause()停止与用户交互
⏹调用onResume()恢复与用户的交互
6、课件5:
界面框架:
视图树。
组件TextView、EditText、Button实用:
先在布局文件中定义,然后在定义的类文件中引用。
会定义侦听器并注册到Button上。
线性布局,表格布局,相对布局。
Android用户界面框架
a)Android用户界面框架(AndroidUIFramework)采用视图树(ViewTree)模型
i.Android用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树
ii.Android系统会依据视图树的结构从上至下绘制每一个界面元素。
每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制
b)视图树
i.视图树由View和ViewGroup构成
ii.View是界面的最基本的可视单元,存储了屏幕上特定矩形区域内所显示内容的数据结构,并能够实现所占据区域的界面绘制、焦点变化、用户输入和界面事件处理等功能
iii.View也是一个重要的基类,所有在界面上的可见元素都是View的子类
iv.ViewGroup是一种能够承载含多个View的显示单元
v.ViewGroup功能:
一个是承载界面布局,另一个是承载具有原子特性的重构模块
常见的系统控件包括TextView、EditText、Button、ImageButton、Checkbox、RadioButton、Spinner、ListView和TabHost
❑TextView是一种用于显示字符串的控件
❑EditText则是用来输入和编辑字符串的控件
⏹EditText是一个具有编辑功能的TextView
❑<
TextViewandroid:
id="
@+id/TextView01"
❑android:
layout_width="
wrap_content"
layout_height="
text="
TextView01"
>
/TextView>
EditTextandroid:
@+id/EditText01"
fill_parent"
EditText01"
/EditText>
❑第1行android:
id属性声明了TextView的ID,这个ID主要用于在代码中引用这个TextView对象
⏹“@+id/TextView01”表示所设置的ID值
⏹@表示后面的字符串是ID资源
⏹加号(+)表示需要建立新资源名称,并添加到R.java文件中
⏹斜杠后面的字符串(TextView01)表示新资源的名称
⏹如果资源不是新添加的,或属于Android框架的ID资源,则不需要使用加号(+),但必须添加Android包的命名空间,例如android:
@android:
id/empty"
❑第2行的android:
layout_width属性用来设置TextView的宽度,wrap_content表示TextView的宽度只要能够包含所显示的字符串即可
❑第3行的android:
layout_height属性用来设置TextView的高度
❑第4行表示TextView所显示的字符串,在后面将通过代码更改TextView的显示内容
❑第7行中“fill_content”表示EditText的宽度将等于父控件的宽度
❑TextViewDemo.java文件中代码的修改
1TextViewtextView=(TextView)findViewById(R.id.TextView01);
2EditTexteditText=(EditText)findViewById(R.id.EditText01);
3textView.setText("
用户名:
"
);
4editText.setText("
⏹第1行代码的findViewById()函数能够通过ID引用界面上的任何控件,只要该控件在XML文件中定义过ID即可
⏹第3行代码的setText()函数用来设置TextView所显示的内容
Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理函数
ImageButton用以实现能够显示图像功能的控件按钮
ButtonDemo在XML文件中的代码
1.<
Buttonandroid:
@+id/Button01"
2.android:
3.android:
4.android:
Button01"
5.<
/Button>
6.<
ImageButtonandroid:
@+id/ImageButton01"
7.android:
8.android:
9.<
/ImageButton>
1.定义Button控件的高度、宽度和内容
2.定义ImageButton控件的高度和宽度,但是没定义显示的图像,在后面的代码中进行定义
更改Button和ImageButton内容
引入android.widget.Button和android.widget.ImageButton
1.Buttonbutton=(Button)findViewById(R.id.Button01);
2.ImageButtonimageButton=(ImageButton)findViewById(R.id.ImageButton01);
3.button.setText("
Button按钮"
4.imageButton.setImageResource(R.drawable.download);
1.第1行代码用于引用在XML文件中定义的Button控件
5.第2行代码用于引用在XML文件中定义的ImageButton控件
6.第3行代码将Button的显示内容更改为“Button按钮”
7.第4行代码利用setImageResource()函数,将新加入的png文件R.drawable.download传递给ImageButton
按钮响应点击事件:
添加点击事件的监听器
1.finalTextViewtextView=(TextView)findViewById(R.id.TextView01);
2.button.setOnClickListener(newView.OnClickListener(){
3.publicvoidonClick(Viewview){
4.textView.setText("
5.}
6.});
7.imageButton.setOnClickListener(newView.OnClickListener(){
8.publicvoidonClick(Viewview){
9.textView.setText("
ImageButton按钮"
10.}
11.});
1.第2行代码中button对象通过调用setOnClickListener()函数,注册一个点击(Click)事件的监听器View.OnClickListener()
2.第3行代码是点击事件的回调函数
3.第4行代码将TextView的显示内容更改为“Button按钮”
2.View.OnClickListener()
1.View.OnClickListener()是View定义的点击事件的监听器接口,并在接口中仅定义了onClick()函数
2.当Button从Android界面框架中接收到事件后,首先检查这个事件是否是点击事件,如果是点击事件,同时Button又注册了监听器,则会调用该监听器中的onClick()函数
3.每个View仅可以注册一个点击事件的监听器,如果使用setOnClickListener()函数注册第二个点击事件的监听器,之前注册的监听器将被自动注销
4.多个按钮注册到同一个点击事件的监听器上,代码如下
12.Button.OnClickListenerbuttonListener=newButton.OnClickListener(){
13.@Override
14.publicvoidonClick(Viewv){
15.switch(v.getId()){
16.caseR.id.Button01:
17.textView.setText("
18.return;
19.caseR.id.ImageButton01:
20.textView.setText("
21.return;
22.}
23.}};
24.button.setOnClickListener(buttonListener);
25.imageButton.setOnClickListener(buttonListener);
第1行至第12行代码定义了一个名为buttonListener的点击事件监听器
第13行代码将该监听器注册到Button上
第14行代码将该监听器注册到ImageButton上
CheckboxRadiobuttonDemo在XML文件中的代码
@+id/TextView01“
2.android:
3.android:
4.android:
@string/hello"
/>
5.<
CheckBoxandroid:
@+id/CheckBox01"
6.android:
7.android:
8.android:
CheckBox01"
9.<
/CheckBox>
10.<
@+id/CheckBox02"
11.android:
12.android:
13.android:
CheckBox02"
14.<
15.<
RadioGroupandroid:
@+id/RadioGroup01"
16.android:
17.android:
18.<
RadioButtonandroid:
@+id/RadioButton01"
19.android:
20.android:
wrap_content“
21.android:
RadioButton01"
22.<
/RadioButton>
23.<
@+id/RadioButton02"
24.android:
25.android:
26.android:
RadioButton02"
27.<
28.<
/RadioGroup>
1.第15行<
RadioGroup>
标签声明了一个RadioGroup
2.在第18行和第23行分别声明了两个RadioButton,这两个RadioButton是RadioGroup的子元素
引用CheckBox和RadioButton的方法参考下面的代码
1.CheckBoxcheckBox1=(CheckBox)findViewById(R.id.CheckBox01);
2.RadioButtonradioButton1=(RadioButton)findViewById(R.id.RadioButton01);
CheckBox设置点击事件监听器的简要代码
1.CheckBox.OnClickListenercheckboxListener=newCheckBox.OnClickListener(){
2.@Override
3.publicvoidonClick(Viewv){
4.//过程代码
5.}};
6.checkBox1.setOnClickListener(checkboxListener);
7.checkBox2.setOnClickListener(c