Open ProZoom opened 7 years ago
在AndroidManifest.xml的节点中声明
<activity android:name="com.itheima.intent.SecondActivity" android:label="@string/title_activity_second" > //这两句可以指定手机home里所是否显示的程序图标 </activity >
构造函数,代码少
startActivity(new Intent( this,SecondActivity.class));
类名形式,灵活,可扩展性强
intent.setClassName(this, "cn.itcast.activity.NewActivity");
包名类名形式,可启动其他程序中的Activity
intent.setClassName("cn.itcast.downloader", "cn.itcast.downloader.MainActivity");
在意图对象中封装了一个Bundle对象,可以用来携带数据 在新Activity中可以获得意图对象以获取其中Bundle保存的数据
Intent intent = new Intent(); Bundle extras = new Bundle(); extras.putString("key", "value"); intent.putExtras(extras); startActivity(intent);
使用startActivityForResult(Intent intent, int requestCode) 方法打开Activity
重写onActivityResult(int requestCode, int resultCode, Intent data) 方法
新Activity中调用setResult(int resultCode, Intent data) 设置返回数据之后,关闭Activity就会调用onActivityResult方法
Intent intent = new Intent(); intent.putExtra("key", "value"); intent.setClassName(this, "cn.itcast.activity.NewActivity" ); startActivityForResult(intent,100); ------------------------------------------------ @Override /** * requestCode 请求码 * resultCode 响应码 * data 返回数据 */ protected void onActivityResult(int requestCode, int resultCode, Intent data) { //设置返回数据之后,关闭Activity就会调用onActivityResult方法 }
显式意图是指在创建意图时指定了组件,而隐式意图则不指定组件,通过动作、类型、数据匹配对应的组件
在清单文件中定义时需要定义才能被隐式意图启动
Author:ProZoom
Hobby:爱折腾、爱思考,想静静的ProZoom
Github --- 简书 --- CSDN --- 关于我
1 创建表示层(Activity)
1.1定义Activity ,继承Activity
在AndroidManifest.xml的节点中声明
1.2显式意图创建方式
构造函数,代码少
类名形式,灵活,可扩展性强
包名类名形式,可启动其他程序中的Activity
1.3 创建Activity并传递数据
在意图对象中封装了一个Bundle对象,可以用来携带数据 在新Activity中可以获得意图对象以获取其中Bundle保存的数据
1.4 创建Activity获取返回数据
使用startActivityForResult(Intent intent, int requestCode) 方法打开Activity
重写onActivityResult(int requestCode, int resultCode, Intent data) 方法
新Activity中调用setResult(int resultCode, Intent data) 设置返回数据之后,关闭Activity就会调用onActivityResult方法
1.5 隐式意图创建Activity
显式意图是指在创建意图时指定了组件,而隐式意图则不指定组件,通过动作、类型、数据匹配对应的组件
在清单文件中定义时需要定义才能被隐式意图启动