赞
踩
Activity是应用程序的入口。负责创建窗口(setContextView(View)),和用户交互等。
首先定义一个类继承自android.app.Activity,在AndroidManifest.xml文件的application标签里声明一个activity即可。
一般一个程序可能会有多个Activity,需要指定程序运行时首先加载的Activity,
在activity标签内部需要定义action 和category 。首先运行这个Activity。
一个Activity例子。设置ContentView,获取视图上的按钮,添加事件。
AndroidManifest配置。
AndroidManifest中的通常设置:
android:launchMode | 启动模式 | standard,singleTop,singleTask ,singleInstance, |
android:screenOrientation | 屏幕 | landscape横屏,portrait竖屏 |
android:label | 标题名称 | 直接写字符,或引用xml文件中的@string/ |
android:name | Activity类名 | 注意.。一般是manifest的package加name等于Activity类带包名的全称 |
|
|
|
Java常用方法
setContentView() | 设置Activity视图 | 参数可以是①res/layout中的xml文件,通过R.layout获取int的id。②View类型的视图。 |
findViewById | 寻找View,在XML | R中的id。一般设置setContentView为R中的layout,通过这个方法寻找每个组件的引用。 |
|
|
|
|
|
|
Java其他方法
去标题 | super.requestWindowFeature(Window.FEATURE_NO_TITLE)需要在执行setContentView之前操作,否则报错。 |
全屏 | super.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); |
横竖向 | super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);/ ActivityInfo.SCREEN_ORIENTATION_PORTRAIT |
屏幕参数widht,height,dpi等 | Display display = super.getWindowManager().getDefaultDisplay(); DisplayMetrics displayMetrics = new DisplayMetrics(); display.getMetrics(displayMetrics); display.getWidth()等方法 displayMetrics.densityDpi等方法 |
|
|
Activity有7个生命周期。Activity程序入口为方法onCreate或onStart。一些初始化的操作需要
在这两个方法中进行,例如设置layout,初始化控件,添加事件监听等。
每次启动Activity都是从OnCreate开始,接着onStart,onResume。
按Back键就结束程序:onPause,onStop,onDestroy;
按home键切换程序:onPause,onStop,切换回来:onRestart,onStrat,onResume。
在两个以上Activity切换时。Activity是否被Destroy取决于启动模式launchMode。
onCreate | 当首次创建Activity时调用。一些设置在该方法中进行:创建视图,数据绑定等。还以Bundle的形式提供以前存储的任何状态的访问。 |
onRestart | 重新启动Activity时调用。该活动仍在内存中,而不是重起一个新的Activity。 |
onStart | 当Activity在屏幕上可见时调用。跟着onResume(), |
onResume | 当Activity与用户交互时调用。 |
onPause | 在系统启动恢复前一个活动时调用。这通常用于未保存的更改提交到持久性数据、 停止动画和其他可能会占用 CPU 等的东西。此方法的实现必须非常快速,因为此方法返回之前不会恢复的下一个活动。跟或 onResume(),如果活动返回到前面或 onStop(),如果它变得对用户不可见。 |
onStop | 因为另一项Activity已恢复或启动,这个Activity已不再对的用户可见时调用。这可能发生或者因为正在启动一项新的Activity,现有之前的这一个Activity或被销毁。如果这个Activity出错或失败将 onDestroy(),如果被用户重新选中则调用 onRestart()。 |
onDestroy | Activity被销毁前的最后调用。发生这种情况是因为Activity被finishing (或称为 finish() ,或因为系统暂时销毁此活动的Activity以节省空间。您可以使用 isFinishing() 方法,区分这两种情况。 |
|
|
在配置文件中android:launchMode可以进行配置Activity加载模式。四种activity的加载模式:standard,singleTop,singleTask,singleInstance。
1. standard:默认,表示如果需要就创建。这样会导致,切换一次Activity,就创建一个。切换多少次,按back键就会返货多少次。
例如ActivityMain使用standard模式,当他转到ActivityOtherOne,又切换到ActivityMain时,原先在ActivityMain上面的EditText最开始输入的文字也就没有了。
2. singleTop:如果已经有一个这个Activity实例位于Activity栈的顶部时,就不产生新的实例。
3. singleTask: 会在一个新的task 中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。
4. singleInstance: 这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task 中,只能有这个activity实例,不能有其他的实例。
首先简单介绍Intent(意图)。Intent类相当于平台中应用程序之间的通信网络,Intent是一个要执行的操作的抽象说明,
相当于各个Activity之间的桥梁。在一个Activity中想切换到另一个Activity,需要使用方法startActivity,并需要定义一个Intent来指定意图的组件类。
定义Intent,使用Intent设置需要切换到哪个Activity。使用Activity的startActivity(Intent)方法。
当然也可以在切换Activity的时候传递数据。可以直接使用intent的putExtra方法,
也可以new一个Bundle传输入,但是需要让intent把bundle进行putExtras下。
传参数端的Activity:
接收方,例子中的ActivityOtherOne。需要在OnCreate方法中获取。
1,在主Activitiy(ActivityMainExample)需要使用startActivityForResult方法切换Activity。
其中第二个参数requestCode,只有当>= 0,在转会此Activity时才会调用onActivityResult方法,得到回传数据。
ActivityMainExample类中代码
重写onActivityResult方法,获取回传数据
2,在另一个Activity插入回传数据,然后finish。
ActivityOtherTwo类中代码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。