Android中Intent
来源:互联网 发布:网站数据迁移方案 编辑:程序博客网 时间:2024/06/06 10:58
转载请标明出处: http://blog.csdn.net/wu_wxc/article/details/53705181
本文出自【吴孝城的CSDN博客】
Android中从一个Activity跳转到另一个Activity可用Intent(意图)来实现
Intent又分为显式和隐式两种,下面简单介绍下这两和Intent的使用
显示Intent
需要编辑的文件如下
主要代码:
点击按钮后启动另一个Activity,在Intent中直接写两个Activity的名字
Intent intent = new Intent(MainActivity.this, SecondAty.class);startActivity(intent);
在AndroidManifest.xml中配置注册Activity
<activity android:name=".SecondAty" />
隐式Intent
区别在于action,action内容可以随便写,但一般用包名+action+类名。
public void click(View v) { Intent intent = new Intent("cn.wuxiaocheng.intent.action.SecondAty"); startActivity(intent);}
<activity android:name=".SecondAty"> <intent-filter> <action android:name="cn.wuxiaocheng.intent.action.SecondAty" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter></activity>
不过一般会在被启动的Activity中定义一个常量,然后在启动它时intent传入被启动类中的这个常量,如下。
public class SecondAty extends Activity { // 定义一个常量存放action public static final String ACTION = "cn.wuxiaocheng.intent.action.SecondAty"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); }}
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v) { // Intent参数传入要启动的Activity定义的常量 Intent intent = new Intent(SecondAty.ACTION); startActivity(intent); }}
启动另一个应用
我们还可以用意图来启动另一个应用,在意图中传入要启动的应用界面的action的包名,也可以是其他字符。不过要完全一样。
<activity android:name=".SecondAty"> <intent-filter> <!--被启动的应用的Activity的action--> <action android:name="cn.wuxiaocheng.intent.action.SecondAty" /> <category android:name="android.intent.category.DEFAULT" /></intent-filter>
// Intent参数传入要启动的应用的Activity的actionIntent intent = new Intent("cn.wuxiaocheng.intent.action.SecondAty");startActivity(intent);
如果当前应用不想被其他应用启动,我们可以在activity中添加一句:android:exported=”false”
这样其他应用启动时应会报错,为了不让程序报错,我们可以捕获异常处理
<!--添加android:exported="false",这样其他应用就无法启动这个Activity--><activity android:name=".SecondAty" android:exported="false"> <intent-filter> <!--被启动的应用的Activity的action--> <action android:name="cn.wuxiaocheng.intent.action.SecondAty" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter></activity>
try { // Intent参数传入要启动的应用的Activity的action Intent intent = new Intent("cn.wuxiaocheng.intent.action.SecondAty"); startActivity(intent);} catch (Exception e) { Toast.makeText(MainActivity.this, "无法启动指定应用", Toast.LENGTH_LONG).show();}
如果有多个个Activity的action是一样的,那么程序在启动时就会弹出选项让你选择其中一个,有仅此一次,也有一直
0 0
- Android中Intent详解
- android 中Intent 使用
- Android中Intent
- Android中Intent应用
- Android中Intent详解
- Android中Intent探究
- android中Intent详解
- Android中Intent笔记
- android中intent深入
- Android 中 Intent.Action
- android中intent bundle
- Android中Intent详解
- Android中Intent介绍
- Android中Intent详解
- android中intent详解
- android中Intent
- Android中Intent
- Android中intent详解
- 散列表在PAT中的应用,例题:1041,1050,1084
- 深刻理解:C#中的委托、事件
- 位运算的使用技巧
- 6.2 Swift闭包表达式的语法
- 上传Android项目至github(1)
- Android中Intent
- crfsuite安装与配置
- 基于TCP的服务器端/客户端(一)---------网络编程(linux----C)
- 6.3 Swift闭包表达式作为回调函数
- AF大文件断点下载
- matlab---逐步回归
- 第七章 —高级组件《二》
- Java面向对象的概念整理
- 程序员为什么不会修电脑?