PreferenceActivity是一个非常有用的基类,当需要进行选项设置时,这些选项会以参数的形式保存,习惯上我们会用Preferences进行保存。
如果Android应用程序中包含某个Activity专门用于选项设置,那么android为这种Activity提供了便捷的基类:PreferenceActivity。
一旦Activity继承了PreferneceActivity,那么该Activity完全不需要自己控制Preferences的读写,PreferenceActivity会帮我们处理一切。
使用PreferenceActivity有一点与众不同,不需要使用普通的界面布局文件,使用PreferenceScreen作为根元素
在activity中使用该界面布局:
1.让Activity继承PreferenceActivity
2.在onCreate(bundle saveInstanceState)方法中调用addPreferencesFormResource(。。。)方法加载指定的界面布局文件
4.1.2配置Activity
Android要求所有的应用程序组件(Activity,Service,ContentProvider,BroadcastReceiver)都必须显式的进行配置。
4.1.3启动,关闭Activity
Activity启其他Activity有如下两个方法:
1.startActivity(Intent intent):启动其他Activity
2.startActivityForResult(Intent intent,int requestCode):以指定请求码(requestCode)启动Activity,而且程序将会等到新启动Activity的结果(通过重写onActivityResult(。。)方法来获取)。
Intent是Android应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己的“意图”,被启动的组件既可以是Activity组件,也可以是,Service组件。
Android为关闭Activity准备了两个方法
finish(),结束当前的Activity。
finish(int requestCode):结束以startActivityForResult(Intent intent,int requestCode)方法启动Activity。
//创建需要启动的Activity对应的Intent
Intent intent = new Intent(StartActivity.this,SecondActivity.class);
startActivity(intent);
4.1.4使用Bunde在Activity之间交换数据
putExtras(Bundle data) 向Intent中放入需要携带的数据
Bundle就是简单的数据携带包,该Bundle对象包含了多个方法来存入数据。
putXxx(String key,Xxx data);向Bundle中放入Int,Long等各种数据类型的数据。
putSerializable(String key,Serializable data);
向Bundle中放入一个可序列化的对象。
为了取出Bundle数据携带包里的数据,Bundle提供了如下方法。
getXxx(String key):从Bundle取出Int,Long等各种类型的数据。
getSerializable(String key,Serializable data);
4.2Activity的回调机制
4.3Activity的生命周期
四个状态:
活动状态:当前Activity位于前台,用户可见,可以获得焦点
暂停状态:其他Activity位于前台,该Activity依然可见,只是不能获得焦点
停止状态:该Activity不可见,失去焦点
销毁状态:该Activity结束,或Activity躲在的Dalvik进程被结束
在Activity的生命周期中,如下方法会被调用
onCreate(Bundle savedStatus)创建Activity时被回调
onStart();启动Activity时被回调
onRestart()重新启动Activity时被回调
onResume()暂停Activity时被回调
onPause()暂停Activity时被回调
onStop()停止Activity时被回调
onDestry()销毁Activity时被回调。