📒 博客首页:✎﹏ℳ๓敬坤的博客 🎈
😊 我只是一个代码的搬运工 🎃
🎉 欢迎来访的读者关注、点赞和收藏 🤞
😉有问题可以私信交流 😆
📃 文章标题:《Android入门到精通》第六章学习笔记总结 🖍
《Android入门到精通》第六章学习笔记总结
Active概述
Activity
■ 四个重要状态
● 运行状态:当前的Activity,位于Activity栈项,用于可见,并且可以获取焦点
● 暂停状态:失去焦点的Activity,仍然可见,但是在内存低的情况下,不能被系统killed(杀死)
● 停止状态:该Activity被其他Activity所覆盖,不可见,但是它仍然保存所有的状态和信息,当内存低的情况下,会被杀死
● 销毁状态:该Activity结束,或者Activity所在的虚拟器进程结束
Activity生命周期的回调方法
● onCreate():再创建Activity时被回调
● onStart():启动Activity时被回调,变为可见时回调
● onResume():当Activity由暂停状态恢复为活动状态时被调用
● onPause():暂停Activity时被回调
● onRestart():重新启动Activity时被回调
● onStop():停止Activity时被回调
● onDestroy():销毁Activity时被回调
创建、配置、启动和关闭Activity
-
点击app=>New=>Activity=>Empty Activity
-
配置Activity信息
-
点击Finish,稍等一会就创建完一个空的Activity
启动Activity的两种方法
■ 只有一个Activity时:只需要在AndroidManifest.xml文件中对其配置,并且将其设置为程序的入口
■ 存在多个Activity时:需要应用startActivity()方法来启动Activity。
关闭Activity
■ finsh():关闭当前Activity,如果不是主活动,将回到调用它的那个Activity,否则回到主屏幕
使用Bundle在Activity之间交换数据
Bundle在Activity之间交换数据流程图
代码实现
■ 在传值Activity页面
● 第一步保存获取的信息:String sitel=(EditText) findViewById(R.id.名称).getText().toString()
● 第二步创建Intent对象:Intent intent=new Intent(MainActivity.this,接收值的Activity名称.class)
● 第三步创建Bundle对象:Bundle bundle=new Bundle()
● 第四步将值添加到bundle对象中:bundle.putCharSequence("键",sitel)
● 第五步通过putExtras()接收值:intent.putExtras(bundle)
● 第六步通过startActivity启动Acitivity:startActivity(intent)
■ 在接收值的页面
● 第一步通过getIntent()创建intent对象:Intent intent=getIntent()
● 第二步通过getExitras()创建bundle对象:Bundle bundle=intent.getExtras()
● 第三步保存我们值:String name=bundle.getString("键")
在Activity中调用另一个Activity
在父Activity中
■ 第一步创建Intent对象:Intent intent=new Intent(MainActivity.this,子Activity名称.class)
■ 第二步通过startActivityForResult()方法启动子Activity:startActivityForResult(intent,请求码)
在子Activity中
■ 获取Intent对象:Intent intent = getIntent()
■ 实例化要传递的数据包:Bundle bundle = new Bundle()
■ 显示选中的图片:bundle.putInt("image",imageId)
■ 将数据包保存到intent中:intent.putExtras(bundle)
■ 设置返回的结果码:setResult(0x11,intent)
■ 关闭当前Activity:finish()
Fragment
作用
■ 用来在一个Activity中描述一些行为或一部分用户界面
生命周期
创建Fragment
■ 创建一个Fragment,必须创建一个Fragment的子类,或者继承自另一个已经存在Fragment的子类
■ 首次调用Fragment,需要在Fragment中必须要重写onCreateView()方法返回一个View,如果Fragment没有UI界面,可以返回null