intent详解(二)

原创 2014年08月06日 20:48:45

前言:上篇讲解了有关intent的基础知识,现在通过几个实例讲讲intent这几个属性的具体应用,还有,(题外话)我发现不能一直听《一生所爱》太悲凉,整得我一晚上都没劲头了,心情很低落,看来以后还是少听悲伤的歌为好。


相关链接:

《intent详解(一)》


一、使用包含预定义动作的隐式Intent

效果图:

     初始状态(一个按钮)                      跳转(多个activity符合条件,让用户选择一个)    

   

       选择我们自己写义的一个activity


1、新建应用,在布局文件中,添加一个button

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.intenttest1.MainActivity" >

    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="转到action.VIEW"/>

</RelativeLayout>

2、新建一个Activity,命名为:SecondActivity

布局如下:(只是改了一下textview的显示值,其它没动)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.intenttest1.SecondActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第二个activiy" />

</RelativeLayout>

3、修改AndroidManifest.xml

修改SecondActivity的属性,为其添加系统定义的Action,修改如下:

<activity
    android:name=".SecondActivity"
    android:label="@string/title_activity_second" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

4、定义隐式intent跳转

在MainActivity中,当点击按钮时实现隐式intent跳转。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				startActivity(intent);
				
			}
		});
    }

}

源代码在文章最底部给出。


二、使用自定义动作的隐式Intent

1、在上例的基础上,更改AndroidManifest.xml,为SecondActivity自定义一个action name

 <activity
     android:name=".SecondActivity"
     android:label="@string/title_activity_second" >
     <intent-filter>
         <action android:name="test_action" />

         <category android:name="android.intent.category.DEFAULT" />
     </intent-filter>
 </activity>
2、隐式Intent跳转
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction("test_action");
				startActivity(intent);
				
			}
		});
    }

}
在intent.setAction()里直接传入自定义的action name,就直接跳转到指定的activity,因为只有这个activity才符合条件,如若有多个activity都有action name="test_action"的话,那就会像上例一样列出列表供用户选择。
源码在文章最底部给出。

效果图:

             初始化状态                                                        点击跳转

   


三、使用Intent打开网页

效果图:

    初始化状态                                                              打开百度网页

   

1、新建工程testIntent3,在主页面加一个Button

XML代码 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.intenttest1.MainActivity" >

    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打开百度"/>

</RelativeLayout>
2、点击Button打开网页
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				intent.setData(Uri.parse("http://www.baidu.com"));
				startActivity(intent);
				
			}
		});
    }

}
使用隐式Intent,利用执行数据来匹配activity,由于执行数据是网页,所以也就只有浏览器才能匹配,所以如果你手机上有不止一个浏览器的话,同样会以列表形式让你选择用哪一个打开。如下图:



所有源码打包一起下载:

地址:http://download.csdn.net/detail/harvic880925/7724673


请大家尊重原创者版权,转载请标明出处:http://blog.csdn.net/harvic880925/article/details/38406421   不胜感激!!!!!



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/harvic880925/article/details/38406421

《intent详解(二)》源码

  • 2014年08月07日 10:10
  • 6.67MB
  • 下载

安卓开发——intent机制详解

Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个:启动 Activity:Activity 表...
  • qq_28484355
  • qq_28484355
  • 2017-03-25 20:24:24
  • 317

Intent详解(二)----Intent过滤器

上次博客中,介绍了Intent的启动Actiity的过程,这次来开始研究Intent过滤器。 开始Intent过滤器之前,首先可以看下过滤器的三个标签,具体参看下表。 标签 ...
  • zys_1997
  • zys_1997
  • 2018-01-22 09:14:06
  • 117

实验2 Activity 和Intent

实验2 Activity 和Intent  1. 实验目的      1. 掌握如何创建一个Activity      2. 掌握如何在Activity中添加控件并进行事件处理      3....
  • LOLABCD
  • LOLABCD
  • 2016-09-18 12:18:58
  • 166

Intent的概念及应用(二)

------siwuxie095       1、Intent过滤器 intent-filter 相关选项       如果多个Activity拥有同样的action,在启动时这个action时的情况...
  • siwuxie095
  • siwuxie095
  • 2017-01-15 22:07:28
  • 127

Android:Intent全面解析

今天就分享一些Android基础知识——Intent。Intent是Android各个组件的桥梁,用起来简单,但是内容还是挺多的。其实没有什么比官方文档更适合学习,但是官网的访问速度慢啊(大家都懂的)...
  • zheng_weichao
  • zheng_weichao
  • 2017-05-13 20:34:45
  • 331

Android-Intent详解

显示Intent启动Activity方式总结:      显示启动就是在明确指出要启动的Activity或者Service的类或者包名。      显示Intent调用Activity,...
  • daiyibo123
  • daiyibo123
  • 2016-04-23 17:06:25
  • 569

【Android基础】Android中的Intent详解

转载自:http://www.coderonline.net/【android基础】android中的intent详解.html#rd&sukey=fc78a68049a14bb2fef19c8057...
  • u011263966
  • u011263966
  • 2015-08-13 21:22:34
  • 5879

Intent详细介绍及使用实例

一个Android程序通常有多个组件构成。如果要从一个Activity切换到另一个,必须用Intent来激活。实际上,Activity,Service和Broadcast Receiver这三种核心组...
  • lxj1137800599
  • lxj1137800599
  • 2015-12-17 19:19:56
  • 530
收藏助手
不良信息举报
您举报文章:intent详解(二)
举报原因:
原因补充:

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