这是安卓学习的第二部分,如果你想从源代码学习,可以下载此压缩文件:
http://download.youkuaiyun.com/detail/u010798277/5669793
关键组件——Activity
写程序之前需要导入类库:import android.app.activity
//import android.app.Notification;
//import android.app.Service;
//import android.app.PendingIntent
//import android.app.NotificationManager;
//import android.content.Intent
//import android.os.Bunder;
//import android.os.IBinder;
//import android.util.Log;
在安卓API中对Activity有如下定义:
An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with setContentView(View). While activities are often presented to the user as full-screen windows, they can also be used in other ways: as floating windows (via a theme with windowIsFloating set) or embedded inside of another activity (using ActivityGroup). There are two methods almost all subclasses of Activity will implement:
总而言之,安卓最基本的就是UI组件, 而Activity就是用来显示UI组件的安卓的基本组成单元。
与其他安卓构件爱你一样,Activity在使用之前,一定要进行显示地注册配置:
在AndroidMianifest文件中配置如下:
<activity android:name=".Myactivity"
android:icon="@darwable/pic.png"
android:label="@string/simlabel">
配置ACtivity代码有许多属性:
基本的有四个:
name,icon,label,intent_filter
在配置Activity之后,我们就可以使用他来显示界面了,
首先要启动Activity,启动Activity有两种方法:
1--startActivity(Intent intent);
2--startActivityForResult(Intent intent,int RequestCode); //RequestCode制动请求码启动activity
//Activity会重写onActivityResult(int requestCode,int resultCode,Intent data)方法来获取新启动的Activity返回的结果
那么,既然app有许多界面,就有许多Activity,他们之间是如何通信交换数据的呢?
这就使用了Intent(信使)与Bundle来交换数据:
Intent提供了以下重载的方法来携带数据:
》putExtras(Bundle data) //Bundle为数据携带包
》putXxx(String key,Xxxdata) //放入一些基本数据类型的数据
》putSerializable(String key,Serailizable data) //放入一个可序列化的对象
还有一些方法用来去数据:
getExtras();
》getXxx(String key) //
》getSerializable(String key,Serailizable data) //
示例1--startActivity:
(activity1)
Person p=new Person("name","passwd",gender);
Bundle data=new Bundle();
Bundle.putSerializable("person",p) //"person"为键值,p为序列化的数据
Intent intent=new Intent(activity1.this,activity2.class);
intent.putExtras(data);
startActivity(intent);
***********************************
(activity2)
Intent intent=getIntent();
Bundle data=intent.getExtras();
Person p=(Person)data.getSerializable("person");
示例2--startActivityFoeRedult:
附:2_界面组件/4.1/ActivityForResult
关键解释:在触发一些时间之后,开启另外的Activity来选择一些参数,然后设置结果码,返回原Activity,
将自动调用onActivityResult(); //该方法将通过结果码来辨别是哪个Activity返回的结果
最后,重要的一点就是-activity的生命周期:
onCreate() //创建
onStart() //启动
onRestart() //重启
onResume() //恢复
onPause() //暂停
onStop() //停止
onDestroy() //销毁
**********************************************************************************
**********************************************************************************
Activity有许多内置的方法,大家可以参照按adroid自己学习,或者在学习的时候,每次见到一些新的方法时,自己记下来。