您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > Android总复习
第三章Activity初步Activity是Android中最核心的应用程序组件,也是大多数程序必须使用的用于显示界面的组件。因此,更好地掌握Activity的使用方法对更深入学习Android至关重要。创建Activity建立一个普通的Java类,该类需从Activity类或者子类中继承。覆盖Activity类的onCreate方法。该方法中需显示调用super.onCreate(servdInstanceState)在onCreate方法中使用setContentView装载View配置Activity创建好的Activity不能马上使用,还需要在AndroidManifest.xml文件中配置。每一个Activity都会对应AndroidManifest.xml文件中的一个activity标签。在该标签中的常用属性包括:android:name是一个必选属性,用于指定一个Activity的类名。android:label指定一个字符串或资源ID,用于设置应用程序列表中程序图标下方的文字android:icon用于设置应用程序的图标activity标签中包含的intent-filter标签用于对Activity进行分类,其中:action标签表示Activity可接收的动作一个必选属性,用于指定一个Activity的类名。cagegory标签标识Activity所属的种类当Android系统运行程序时,会首先启动包含android.intent.action.MAIN动作的Activity。作为MainActivity,必须要使用android.intent.category.LAUNCHER作为其类别,表示该Activity可以显示在最顶层。Intent对象中包含了一组信息Componentname,Action,Data,Category,Extras,FlagsIntent对象的使用方法Intentintent=newIntent();Intent.setClass(Activity01.this,Activity02.class);Activity01.this.startActivity(intent);使用Intent对象在Activity之间传递数据在Activity1中添加需传递给Activity2的键值对Intentintent=newIntent();Intent.putExtra(“testIntent”,”abc”);Intent.setClass(Activity01.this,Activity02.class);Activity01.this.startActivity(intent);在Activity2中获取所需键对应的值Intentintent=getIntent();Stringvalue=intent.getStringExtra(“testIntent”);通过Intent对象启动的组件可不在同一个应用程序中。例如,可使用Intent启动发送短消息界面//无号码与内容:Intentintent=newIntent(Intent.ACTION_VIEW);intent.setType(vnd.android-dir/mms-sms);startActivity(intent);//有号码有内容:UrismsToUri=Uri.parse(smsto:10000);Intentintent=newIntent(android.content.Intent.ACTION_SENDTO,smsToUri);intent.putExtra(sms_body,TheSMStext);startActivity(intent);也可使用Intent打开系统拨号界面//无号码:Intentintent=newIntent();intent.setAction(android.intent.action.CALL_BUTTON);startActivity(intent);//有号码:Uriuri=Uri.parse(tel:xxxxxx);Intentintent=newIntent(Intent.ACTION_DIAL,uri);startActivity(intent);启动其他系统程序//打开设置主界面:Intentintent=newIntent(android.provider.Settings.ACTION_SETTINGS);startActivityForResult(intent,0);//打开WIFI设置界面:Intentintent=newIntent(android.provider.Settings.ACTION_WIFI_SETTINGS);startActivity(intent);//管理应用程序界面Intentintent=newIntent(android.provider.Settings.ACTION_APPLICATION_SETTINGS););startActivity(intent);//打开蓝牙设置Intentintent=newIntent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGSstartActivity(intent);//打开联系人界面Intentintent=newIntent(Intent.ACTION_VIEW);intent.setType(vnd.android.cursor.dir/contact);startActivity(intent);//打开通话记录Intentintent=newIntent(Intent.ACTION_VIEW);intent.setType(vnd.android.cursor.dir/calls);startActivity(intent);//打开相册和视频Intentintent=newIntent(Intent.ACTION_VIEW);intent.setType(vnd.android.cursor.dir/image);//图片列表intent.setType(vnd.android.cursor.dir/video);//视频列表startActivity(intent);//打开mp3播放器Intentintent=newIntent(android.intent.action.MUSIC_PLAYER);startActivity(intent);//打开照相机Intentintent=newIntent(android.media.action.STILL_IMAGE_CAMERA);startActivity(intent);第四章Activity的生命周期Android针对Activity的管理使用的是栈机制,Activity栈保存了已经启动且没有终止的Activity,并遵循“先进先出”的原则。即在某一时刻,只有一个Activity处在栈顶,当这个Activity被销毁后,下面的Activity才可能处于栈顶,任意时刻,与用户交互的界面只有一个。Activity的生命周期是指Activity从创建到销毁的过程,在这一过程中,Activity一般处于4种状态:Active/Running、Pause、Stop、KilledActive/Running:此时Activity一定处于屏幕最前端,用户完全可以看得到,并可以进行交互。对于Activity栈来说,它处于栈顶。Pause:此时Activity在屏幕上仍是可见的,但是它已失去了焦点,用户不能与之进行交互。暂停状态的Activity是存活着的,它依然维持着其内部状态和信息,但系统可能会在手机内存极低的情况下杀死该ActivityStop:此时Activity在屏幕上是完全不能被用户看见的,也就是说这个Activity已经完全被其他Activity遮挡住。处于停止状态的Activity,系统仍然保留其内部状态和成员信息,但它经常会由于手机系统内存被征用而被系统杀死收回。Killed:Activity被系统杀死回收或未启动。为了能够让Android程序了解自身状态的变化,Android系统中具有很多时间回调方法,可重载这些方法来实现自己的操作。Android生命周期的事件回调方法如下:voidonCreate(BundlesavedInstanceState)voidonStart()voidonRestart()voidonResume()voidonPause()voidonStop()voidonDestroy()第五章Activity布局FrameLayout:框架布局框架布局是最简单的布局方式,所有添加到这个布局中的视图都以层叠的方式显示。第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图。这种显示方式类似堆栈,栈顶的视图显示在最顶层,栈底的视图显示在最底层。因此FrameLayout也成为堆栈布局。框架布局在XML布局文件中使用FrameLayout标签进行配置,如果使用Java代码,需要创建android.widget.FrameLayout对象。TableLayout:表格布局表格布局可将视图按行、列进行排列。一个表格布局由一个TableLayout标签和若干TableRow标签组成,每个TableRow标签代表表格的一行,在TableRow标签中每加入一个控件,代表表格的一列。表格布局在实现行列效果中并不常用,一般会使用GridView控件来代替表格布局。AbsoluteLayout:绝对布局通过绝对布局,可以任意设置视图的位置。使用android:layout_x和android:layout_y属性可以设置视图的横坐标和纵坐标位置。由于绝对布局需对所有视图固定其位置,在不同分辨率下可能造成不一致的显示效果,在目前的应用程序中已很少使用。LinearLayout:线性布局线性布局是一种常用的布局方式,在XML布局文件中使用LinearLayout标签进行配置,如果使用Java代码,需要创建android.widget.LinearLayout对象。线性布局可分为水平线性布局和垂直线性布局。通过android:orientation属性可以设置线性布局的方向,该属性的可选值是horizontal和vertical,默认是horizontal。LinearLayout标签有一个非常重要的属性:gravity,该属性用于控制布局中视图的位置,其取值包括:RelativeLayout:相对布局相对布局可以设置某一个视图相对于其他视图的位置,这些位置包括上、下、左、右。这些位置的属性是android:layout_above、android:layout_below、android:layout_toLeftOf、android:layout_toRightOf。除此之外,还可以通过anroid:layout_alignBaseline属性设置视图的底端对齐方式这5个属性的值必须是存在的资源ID,也就是另一个视图的android:id属性值。第六章Android的控件——Widget常用XML属性解析Android:id属性要在代码或XML布局文件中引用某个控件,该控件必须要设置android:id属性。这个属性需要设置一个引用类型的值,格式为:其中value表示任意符合Java语言标识符规范的字符串。第一种形式(@id/value)中的value必须在R.id中存在。第二种形式(@+id/value)表示如果value指定的变量名在R.id中存在,则使用已存在的变量值作为其ID值,否则,在R.id类中新建一个变量。控件的宽度(android:layout_width)和高度(android:layout_height)。Android:layou
本文标题:Android总复习
链接地址:https://www.777doc.com/doc-6068893 .html