定义一个类继承actvity
一、开启activity的两种方式
1-开启方式1
startActivity(intent);//(没有要返回的数据.就是简简单单开启activity)
2-开启方式2
// [1]开启activity 当开启activity 还要开启之前关闭activity返回的数据
//参数2:请求吗
startActivityForResult(intent, 1);
//onActivityResult当开启的activit关闭的时候这个方法会执行
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//取出数据 请求码
if (requestCode == 1) {
// 代表我要请求ContactActivity这个页面的数据
String phone = data.getStringExtra("phone");
et_number.setText(phone);
} else if (requestCode == 2) {
// 代表我要请求SmsTemplateActivity短信模板页面的数据
String smsTemplate = data.getStringExtra("smsTemplate");
et_content.setText(smsTemplate);
}
/*
* if (resultCode == 10) { //说明 data数据是从ContactActivity这个页面返回
//取出数据 结果码
String phone = data.getStringExtra("phone");
//展示数据
* et_number.setText(phone);
*
* }else if(resultCode == 20){ //说明data数据是从SmsTemplateActivity这个页面返回
* String smsTemplate = data.getStringExtra("smsTemplate");
* et_content.setText(smsTemplate); }
*/
}
关闭页面前把数据返回
// [4]取出点中条目的数据
String smsTemplate = objects[position];
// [5]把短信模板的数据返回到mainActivity 调用者
Intent intent = new Intent();
intent.putExtra("smsTemplate", smsTemplate);
setResult(20, intent);
// [6]调用finish把当前页面关闭 把数据返回
finish();
页面跳转--intent匹配
1隐式意图跳转(意图过滤器有啥匹配啥)
// [1]创建意图对象 可以和我自己定义的意图过滤器进行匹配 实现一件事 可以简单的去实现 也可以复杂化
Intent intent = new Intent();
// 意图过滤器有啥匹配啥
// [2]设置action 匹配action--配置啥写啥
//
intent.setAction("com.kailing.testactivity");
// [3]匹配category :是为了执行我们定义的动作(action)提供的环境--default安卓默认提供的环境 intent.addCategory("android.intent.category.DEFAULT");
// [5]匹配 type类型 这个方法会自动清除之前通过setdata方法设置的数据
// intent.setType("aa/bb");
// [4]页面跳转加上了携带的数据 ---scheme的数据再随便加个数据--:号是固定格式
// 这个方法会自动清除之前通过setType方法设置的数据
// intent.setData(Uri.parse("kailing:"+1110));
// 当清单文件既配置了data(scheme) 又配置了type 我们应该使用下面这个方法
intent.setDataAndType(Uri.parse("kailing:" + 1110), "aa/bb1");
// [6]开启意图
startActivity(intent);
2显示意图跳转
// [1]创建意图对象 (参数1:上下文--参数2:这个类的字节码)
Intent intent = new Intent(getApplicationContext(), Test2Activity.class);
// [3]开启意图
startActivity(intent);
二、activity生命周期和启动模式
三、多图标
若清单文件中的Activity声明为:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
则此Activity将作为程序的入口,有几个作为入口的Activity,apk文件安装的时候就会生成几个图标。