显示Intent和隐式Intent

原创 2015年07月07日 11:34:33
  • 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
  • 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间,必须加上<</span>category android:name = "android.intent.category.DEFAULT" />

一.显式Intent

   一 般情况下,一个Android应用程序中需要多个屏幕,即是多个Activity类,并且在这些Activity之间进行切换通过Intent机制来实现 的。在同一个应用程序中切换Activity时,我们通常都知道要启动的Activity具体是哪一个,因此常用显式的Intent来实现的。

    下 面的例子是在同一应用程序中MainActivity启动SecondActivity,下面的代码中,主要是为“转到SecondActivity”按 钮添加了OnClickListener,使得按钮被点击时执行onClick()方法,onClick()方法中则利用了Intent机制,来启动 SecondActivity,关键的代码是22~25行。

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello1"
  11. />
  12. <Button
  13. android:id="@+id/btn"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="转到SecondActivity"
  17. />
  18. </LinearLayout>

second.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello2"
  11. />
  12. <Button
  13. android:id="@+id/secondBtn"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="返回"
  17. />
  18. </LinearLayout>

MainActivity.java

  1. package com.android.test.activity;

  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;

  8. public class MainActivity extends Activity {
  9. private Button btn;
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);

  14. btn = (Button)findViewById(R.id.btn);
  15. //响应按钮btn事件
  16. btn.setOnClickListener(new OnClickListener() {
  17. @Override
  18. public void onClick(View v) {
  19. //显示方式声明Intent,直接启动SecondActivity
  20. Intent it = new Intent(MainActivity.this,SecondActivity.class);
  21. //启动Activity
  22. startActivity(it);
  23. }
  24. });
  25. }
  26. }

SecondActivity.java

  1. package com.android.test.activity;

  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;

  8. public class SecondActivity extends Activity {
  9. private Button secondBtn;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.second);

  14. secondBtn=(Button)findViewById(R.id.secondBtn);
  15. //响应按钮secondBtn事件
  16. secondBtn.setOnClickListener(new OnClickListener() {
  17. @Override
  18. public void onClick(View v) {
  19. //隐式方式声明Intent,直接启动MainActivity
  20. Intent intent = new Intent(SecondActivity.this,“com.st.org.main”);
  21. //启动Activity
  22. startActivity(intent);
  23. }
  24. });
  25. }
  26. }

AndroidManifest.xml清单文件,16~18行为SecondActivity在清单文件里的声明

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.android.test.activity"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdk android:minSdkVersion="10" />

  7. <application android:icon="@drawable/icon" android:label="@string/app_name">
  8. <activity android:name=".MainActivity"
  9. android:label="@string/app_name">
  10. <intent-filter>
  11. <action android:name="com.st.org.main" />
  12. <category android:name="android.intent.category.LAUNCHER" />
  13. </intent-filter>
  14. </activity>
  15. <activity android:name=".SecondActivity"
  16. android:label="@string/app_name">
  17. </activity>
  18. </application>
  19. </manifest>
版权声明:本文为博主原创文章,未经博主允许不得转载。

Intent显示和隐式的区别

显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,去调用Intent.setComponent()、Intent.setClassName()或Intent....
  • Beixiaozhang
  • Beixiaozhang
  • 2016年10月29日 16:34
  • 927

Android理解:显式和隐式Intent

Intent是Android初学者比较难理解的一个东西。我这里以通俗易懂的语言和通俗易懂的代码,让初学者简单感受一下Intent。 intent就是意图的意思。Intent分两种:显式(Explici...
  • xiao__gui
  • xiao__gui
  • 2013年09月08日 19:33
  • 25479

android学习笔记 是用显示和隐式的Intent 跳转界面

普通显示Intent 用法 Intent intent = new Intent(); intent.setClass(MainActivity.this, activity2.class)...
  • chen81751565
  • chen81751565
  • 2015年08月21日 10:41
  • 1429

Android中显式和隐式intent的特点和区别

Intent简介: Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递...
  • u014177843
  • u014177843
  • 2016年01月27日 21:48
  • 1717

几种常用的隐式Intent用法

1.从google搜索内容  Intent intent = new Intent();  intent.setAction(Intent.ACTION_WEB_SEARCH);  intent...
  • legend12300
  • legend12300
  • 2016年02月19日 09:15
  • 774

android学习记录(五)显式Intent与隐式Intent的功能与使用方法解析。

显式Intent与隐式Intent的功能与使用方法解析。   Intent,在中文中的意思是意图。就是想要做的事。   而使用startActivity(Intentintent)或者startAct...
  • zuolovefu
  • zuolovefu
  • 2014年12月14日 09:23
  • 1304

Android学习记录(7)—Intent中显示意图和隐式意图的用法

Intent(意图)主要是解决Android应用的各项组件之间的通讯。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的...
  • loongggdroid
  • loongggdroid
  • 2014年01月05日 19:07
  • 20770

第一行代码系列第二章——更多隐式Intent用法(打开网页)

效果图 修改FirstActivity中按钮事件 Button button1 = (Button) findViewById(R.id.button_1); button1.se...
  • asdaosidasu
  • asdaosidasu
  • 2016年09月11日 13:47
  • 544

显式intent和隐式intent区别

android当中显式intent和隐式intent的区别 定义: Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图...
  • hhq163
  • hhq163
  • 2013年07月23日 00:10
  • 6153

Intent的隐式方式启动Activity

Intent 在Android中intent是消息的载体,使用它来让组件(component)执行操作。其主要用途有三: 1.启动一个Activity 2.启动一个Service 3.派送broadc...
  • autumn_xl
  • autumn_xl
  • 2015年03月05日 16:22
  • 3352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:显示Intent和隐式Intent
举报原因:
原因补充:

(最多只允许输入30个字)