第一行代码Android-------第二章活动
一、活动基本用法
1、创建活动
点击包 -> new -> Activity -> Empty Activity 同时勾选Generate Layout File 会自动创建布局文件
所有的活动都要在Andriod Manifest 文件中注册才能生效,
android :label 指定活动中标题栏的内容
2、创建布局文件
点击app/src/main/res目录 -> New -> Directory 新建目录 layout 接着右击 New -> layoutFile resource File 创建新的布局文件
3、Toast
将消息提醒给用户
Toast.makText(上下文,显示内容,显示时长).show();
时长有两个内置参数 Toast.LENGTH_SHORT Toast.LENGTH_LONG
4、Menu
new -> menu resource file 创建menu
<item
android:id="@+id/ name" // id
andriod:title="title_name"/> //显示名称
重写创建菜单的方法 ctrl+o 重写方法
重写onCreateOptionsMenu(){
getMenuInflater().inflate(R.menu.main,menu);
return true; //true表示允许将菜单显示出来
}
5、销毁活动
在Activity中提供了finish()方法
或者按一下back也可以销毁活动
二、使用intent在活动之间穿梭
intent是andriod中各组件之间进行交互的一张方式,指明了当前组件想要执行的动作以及在各组件之间传输数据
1、显式intent
Intent intent = new Intent(上下文,目标活动);//构建活动
startActivity(intent);//执行活动
2、隐式intent
不明确指明需要执行的活动,而是给出action和category,交由系统去分析intent,并寻找合适的活动去启动
在AndroidManifest.xml中活动中添加
<intent-filter>
<action android:name=""/>
<category android:name=""/>
</intent-filter>
在activity中添加
Intent intent = new Intent("XXXXXXX");//表面想要启动什么样的活动
intent.addCategory("XXXXXXX");//
intent.setData(Uri.parse());//指定intent操作的数据
3、向下一个活动传递数据
传递时:
intent.putExtra("key","value");//
接收时:
Intent intent = getIntent();//获取到启动该activity的intent
String data = intent.getStringExtra(key);
4、返回数据给上一个活动
开始活动时使用
startActivityForResult(intent,requestCode);//状态码唯一
在传递数据的活动中中
Intent intent = new Intent();//只用于传递数据,不启动任何活动
intent.putExtra("data_return",data);//返回的数据
setResult(Result_OK,intent);//活动返回处理结果与传递数据的intent
finish();//销毁当前活动
5、活动的生命周期
安卓利用Task来管理活动,这个栈称为返回栈;
每当销毁一个活动时,处于栈顶的活动会出栈,前一个入栈的活动重新处于栈顶的位置;
系统总是显示处于栈顶的活动给用户;
四种活动状态:
运行状态:位于栈顶
暂停状态:不处于栈顶,但任然可见
停止状态:不处于栈顶且不可见
销毁状态:从栈中移除
生存期:
onCreate():活动初始化的时候
onStart():由不可见变为可见
onResume():处于栈顶的时候
onPause():启动或者恢复另外一个活动时
onStop():完全不可见时
onDestroy():被销毁之前调用
onResart():活动重新启动
6、活动的启动模式
standard:默认的启动模式,每次都重新开启一个活动
singleTop:当不处于栈顶时,重新开启一个活动
singleTask:当返回栈中没有时,重新开启一个活动
singleInstance:启用一个新的返回栈来管理这个活动