Android -- 两个activity界面的切换, 显示Intent 和 隐式Intent,putExtra传递数据
1. 两个Activity之间可以通过Intent切换, 包括显示Intent 和 隐式Intent。
实例代码
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
同一个应用程序里面 自己激活自己的东西. 推荐使用显示意图. 效率高.
不同的应用程序里面,激活别人的应用,或者是让自己的某一个界面希望被别人激活,推荐使用隐式意图,
1. 查询系统里面的所有的activity 看看是不是有满足条件的activity.
2.有,判断多少个,只有1个 直接启动, 如果有多个,列表方式
3.如果没有, 应用程序异常终止 activity not found execption
*/
// Intent 显示意图.
// 显示意图: 必须要指定开启组件的具体信息( 包名, 组件名, 组件的class)
//当用户点击按钮的时候 跳转到第二个界面
public void click(View view){
Intent intent = new Intent(this, OtherScreenActivity.class);
// intent.setClassName(this, "com.itheima.twoactivity.OtherScreenActivity");
startActivity(intent);
}
public void click2(View view){
//cmp=com.android.gallery/com.android.camera.GalleryPicker
Intent intent = new Intent();
intent.setClassName("com.android.gallery", "com.android.camera.GalleryPicker");
startActivity(intent);
}
//采用隐式意图 激活第三个界面
public void click3(View view){
Intent intent = new Intent();
intent.setAction("com.itheima.xxx");
//如果权限xml文件中没有加,则是默认值,必须设置为CATEGORY_DEFAULT
intent.addCategory(Intent.CATEGORY_DEFAULT);
//指定数据的类型, 如果一个APP既有Data又有Type 必须同时设置
//intent.setType("vnd.android.cursor.item/haha");
//intent.setData(Uri.parse("itheima:gagaga"));
intent.setDataAndType(Uri.parse("itheima:gagaga"), "vnd.android.cursor.item/haha");
intent.putExtra("name", "kevin");
//putExtra 可以传对象,但是需要实现Serializable接口
startActivity(intent);
//动作action 类型Type 数据data
//动作 数据
//打 人 打酱油
//泡 茶 泡 妞
//泡绿茶 泡红茶 泡乌龙茶
//addCategory 附加的信息. 提供一些执行的环境 参数
}
public void click4(View view){
Intent intent = new Intent();
intent.setAction("android.intent.action.SENDTO");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("sms:110"));
startActivity(intent);
}
}
OtherScreenActivity.java
//activity 是系统的重要的组件 ,
//操作系统要想找打activity 就必须在 清单文件里面配置
public class OtherScreenActivity extends Activity {
//重写 activity 的oncreate方法 方法里面设置初始化程序的界面.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two); Intent intent = getIntent();//获取到激活他的意图
Uri uri = intent.getData();
String result = uri.toString();
String name = intent.getStringExtra("name");
System.out.println(result);
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.twoactivity"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" /> <application
android:allowBackup="true"
android:icon="@drawable/app"
android:label="@string/application_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.itheima.twoactivity.MainActivity"
android:icon="@drawable/atools"
android:label="@string/activiy01" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <activity
android:name="com.itheima.twoactivity.OtherScreenActivity"
android:icon="@drawable/ic_scanner_malware"
android:label="@string/activity02" >
<intent-filter>
<action android:name="com.itheima.xxx" /> <data
android:mimeType="vnd.android.cursor.item/haha"
android:scheme="itheima" >
</data> <category android:name="android.intent.category.DEFAULT" >
</category>
</intent-filter>
</activity>
</application> </manifest>
Android -- 两个activity界面的切换, 显示Intent 和 隐式Intent,putExtra传递数据的更多相关文章
- Android开发学习笔记:浅谈显示Intent和隐式Intent
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 ...
- Android开发学习之浅谈显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...
- 在Android中Intent的概念及应用(一)——显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...
- 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent
1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...
- 2018.7.9 Android—显式Intent和隐式Intent的区别
1:都是用来在一个activity中启动另外一个activity 2:显示Intent直接指明要启动activity的定义,即activity.class:隐式intent通过在androidmani ...
- selenium 显示等待、隐式等待、强制等待
如今大部分web程序使用Ajax技术,当浏览器加载页面时,页面元素可能不是同时加载完成,如果因为加载某个元素超时导致ElementNotVisibleException的情况出现,自动化脚本的稳定性就 ...
- 显示intent和隐示intent有什么区别
显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent. 隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent. 说明:And ...
- Android学习记录(7)—Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的 ...
- Android 显示意图和隐式意图的区别
意图在android的应用开发中是很重要的,明白了意图的作用和使用后,对开发会有很大帮助.如果没有把意图搞懂,以后开发应用会感觉缺些什么. 意图的作用: 1.激活组件 ...
随机推荐
- Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2
环境:centos7.1 docker run -t -i centos /bin/bash 运行上面的命令开启容器时报错: /usr/bin/docker-current: Error respon ...
- Fibonacci----poj3070(矩阵快速幂, 模板)
题目链接:http://poj.org/problem?id=3070 . 就是斐波那契的另一种表示方法是矩阵的幂: 所以是矩阵快速幂:矩阵快速幂学习 #include <cstdio> ...
- virtio前端驱动详解
2016-11-08 前段时间大致整理了下virtIO后端驱动的工作模式以及原理,今天就从前端驱动的角度描述下目前Linux内核代码中的virtIO驱动是如何配合后端进行工作的. 注:本节代码参考Li ...
- virt-manager 操作 kvm虚拟机中鼠标不同步的问题
在/etc/libvirt/qemu下找到对应的xml配置文件 在<devices>标签下添加 <input type='tablet' bus='usb'/> 然后 vi ...
- docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令
使用最新的官方镜像jenkins/jenkins 第一次使用的docker部署jenkins的时候,出现了两个问题: 1.因为用户权限问题挂载/home/jenkins/data到/var/jenki ...
- 对BeforeSuite和BeforeTest的理解
在BeforeSuite.BeforeTest.BeforeClass.BeforeMethod及BeforeGroups中,后面三个注解都比较好理解,其实BeforeSuite.BeforeTest ...
- (转)库函数之 API
API是库函数,这些库函数操作系统提供开发人员开发应用程序使用的. API函数内部应该是C C++ 或者汇编语言实现的. 如果想在程序里面使用API函数 需要包含头文件 Windows.h. ...
- python3 用requests 保存网页以及BeautifulSoup保存图片,并且在本地可以正常显示文章的内容和图片
用requests 模块做了个简单的爬虫小程序,将博客的一篇文章以及图片保存到本地,文章格式存为'.html'.当文章保存到本地后,图片的连接可能是目标站点的绝对或者相对路径,所以要是想在本地也显示图 ...
- SSH查看Linux系统是32位还是64位?
Linux下如何明确地查看操作系统的位数 如何知晓操作系统是32位还是64位?这里介绍一种简单的方式: [root@localhost mysql-5.1.57]# getconf LONG_BI ...
- java 将小数拆分为两部分+浮点型精度丢失问题
问题:将一个String类型的小数拆分为整数部分和小数部分,如9.9拆分为9和0.9 1.将小数的整数和小数部分拆分开 public float numberSub(String totalMoney ...