Android中的互联网应用.docx

上传人:b****4 文档编号:4817559 上传时间:2023-05-07 格式:DOCX 页数:23 大小:74.34KB
下载 相关 举报
Android中的互联网应用.docx_第1页
第1页 / 共23页
Android中的互联网应用.docx_第2页
第2页 / 共23页
Android中的互联网应用.docx_第3页
第3页 / 共23页
Android中的互联网应用.docx_第4页
第4页 / 共23页
Android中的互联网应用.docx_第5页
第5页 / 共23页
Android中的互联网应用.docx_第6页
第6页 / 共23页
Android中的互联网应用.docx_第7页
第7页 / 共23页
Android中的互联网应用.docx_第8页
第8页 / 共23页
Android中的互联网应用.docx_第9页
第9页 / 共23页
Android中的互联网应用.docx_第10页
第10页 / 共23页
Android中的互联网应用.docx_第11页
第11页 / 共23页
Android中的互联网应用.docx_第12页
第12页 / 共23页
Android中的互联网应用.docx_第13页
第13页 / 共23页
Android中的互联网应用.docx_第14页
第14页 / 共23页
Android中的互联网应用.docx_第15页
第15页 / 共23页
Android中的互联网应用.docx_第16页
第16页 / 共23页
Android中的互联网应用.docx_第17页
第17页 / 共23页
Android中的互联网应用.docx_第18页
第18页 / 共23页
Android中的互联网应用.docx_第19页
第19页 / 共23页
Android中的互联网应用.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android中的互联网应用.docx

《Android中的互联网应用.docx》由会员分享,可在线阅读,更多相关《Android中的互联网应用.docx(23页珍藏版)》请在冰点文库上搜索。

Android中的互联网应用.docx

Android中的互联网应用

Intent的中文意思是“意图,意向”,可以把它理解为不同组件之间通信的“媒介”或者“信使”。

也就是“把我的意思/意图告诉它”。

举个例子来说吧,一位姑娘想找个对象,然后她找了一个媒婆,把她的要求(四有新人,即有型、有钱、有车、有房)告诉了这位媒婆,然后媒婆按照她的要求去寻找目标对象。

在这里的“姑娘”是源组件(例如,一个activity),“媒婆”是intent,“目标对象”是目标组件。

这样源组件通过intent找到了目标组件。

目标组件要通过intent来声明自己的条件,一般通过组件的元素来实现。

Intent到底都能干什么呢?

Intent可以启动一个activity,也可以启动一个service,还可以发起一个广播(Broadcast)。

具体方法如表所示。

Intent启动不同组件的方法

组件名称

方法名称

Activity

startActivity()

startActivityForResult()

Service

startService()

bindService()

Broadcasts

sendBroadcast()

sendOrderedBroadcast()

sendStickycast()

Intent由以下几个部分组成:

动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展信息(Extra)。

通过这些可以启动其他组件并携带信息。

Intent在寻找目标组件时有两种方法:

第一,通过组件名称直接指定;第二,通过IntentFilter过滤指定,还是上面那个姑娘找对象的例子,可以有两种方法:

第一,姑娘告诉媒婆我就找张三了;第二,姑娘提出条件(如要四有新人),那么就要在符合条件的人中过滤筛选。

Intent对象及其属性

Intent是对它要完成操作的一种抽象描述,我们可以使用Intent来启动一个Activity、发起一个Broadcast和启动或绑定一个Service。

Intent使应用程序代码在运行时动态绑定成为可能,这也降低了不同代码之间的耦合性。

Intent最常使用的方法是用来启动一个Activity。

Intent封装了它要执行动作的属性,这些属性最常见的是Action和Data。

Intent的ComponentName属性

在后续的内容中我们将介绍Intent的查找组件策略,其中的一种方法是显式查找,就是直接通过组件名称(Componentname)来查找。

Intent的组件名称对象由ComponentName类来封装,组件名称包含包名称和类名称,被声明在AndroidMainfest.xml文件中。

组件名称通过setComponent()、setClass()、setClassName()设置,通过getComponent()获得。

下面我们通过一个实例来演示Intent组件名称属性的使用,该实例是通过一个组件名称来直接启动一个Activity的。

实例步骤说明如下。

创建一个名为intent_CompentNameDemo的项目。

在工程的res\layout\目录下创建一个main.xml布局文件,在其中添加一个Button组件。

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

orientation="vertical"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

>

text="测试Intent的组件名称属性"

android:

id="@+id/myButton01"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

在“com.yidu.demo”包中创建一个MainActivity类。

packagecom.yidu.demo;

importandroid.app.Activity;

importandroid.content.ComponentName;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

/**

*

*@authoradmins测试intent的CompentName属性

*/

publicclassMainActivityextendsActivity{

Buttonbtn;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//设置视图布局

setContentView(R.layout.main);

//根据布局文件中的配置产生Button按钮

btn=(Button)findViewById(R.id.myButton01);

//为按钮添加监听器

btn.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

/*

*实例化组件名称newComponentName(当前Activity对象,"需要传递到的Activity")

*/

ComponentNamecn=newComponentName(MainActivity.this,

"com.yidu.demo.MyActivity");

//实例化Intent对象

Intentintent=newIntent();

//为intent设置组件名称属性

intent.setComponent(cn);

//启动Activity

startActivity(intent);

}

});

}

}

在该工程的res\layout\目录下创建一个布局文件my_layout.xml,在其中添加一个TextView组件。

xmlversion="1.0"encoding="utf-8"?

>

xmlns:

android="

android:

orientation="vertical"

android:

layout_width="match_parent"

android:

layout_height="match_parent">

text="@+id/TextView01"

android:

id="@+id/TextView01"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

在该工程中创建另外一个名为MyActivity的类。

packagecom.yidu.demo;

importandroid.app.Activity;

importandroid.content.ComponentName;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.widget.TextView;

publicclassMyActivityextendsActivity{

privateTextViewtv;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//设置视图布局

super.onCreate(savedInstanceState);

setContentView(R.layout.my_layout);

//得到前一个Activity传过来的Intent

Intentintent=this.getIntent();

//得到组件名称对象

ComponentNamecn=intent.getComponent();

//获得包的名称

StringpackageName=cn.getPackageName();

//得到类名

StringclassName=cn.getClassName();

tv=(TextView)findViewById(R.id.TextView01);

//显示

tv.setText("组件包名称:

"+packageName+"\n"+"组件类名称:

"+className);

}

}

 

Intent的Action属性

Action是指Intent要完成的动作,是一个字符串常量。

在Intent类里面定义了大量的Action常量属性,例如,ACTION_CALL(打电话)、ACTION_EDIT(编辑数据)、ACTION_BATTERY_LOW(电量低广播Action)等。

我们也可以自己定义Action来使用。

我们可以使用setAction()来设置IntentAction属性,使用getAction来获得Intent的Action属性。

1、自定义Action属性

我们可以为Intent定义一个Action属性来访问,Action属性是一个字符串,我们在程序中定义,并在要访问组件(例如:

Activity)的IntentFilter中声明就可以使用来。

下面的实例将演示如何自定义一个IntentAction属性。

在工程的res\layout\目录下创建一个main.xml布局文件,在其中添加一个Button组件。

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

orientation="vertical"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

>

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

text="@string/hello"

/>

text="测试action属性"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

id="@+id/btn"/>

创建一个工程,在“com.yidu.test”包中创建一个MyActivity类。

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

publicclassMyActivityextendsActivity{

publicfinalstaticStringMY_ACTION="com.yidu.test.MY_ACTION";

Buttonbtn;

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btn=(Button)findViewById(R.id.btn);

btn.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewv){

//实例化Intent类

Intentintent=newIntent();

//为Intent对象设置Action属性

intent.setAction(MY_ACTION);

//启动Activity

startActivity(intent);

}

});

}

}

在工程的res\layout\目录下创建一个second.xml布局文件,在其中添加一个TextView视图组件。

xmlversion="1.0"encoding="utf-8"?

>

xmlns:

android="

android:

layout_width="wrap_content"

android:

layout_height="wrap_content">

id="@+id/tv"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

创建一个SecondActivity类,在其顶部声明TextView组件,在onCreate()方法中实例化它,获得Intent实例,从而获得action属性并显示在TextView中。

packagecom.yidu.test;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.widget.TextView;

publicclassSecondActivityextendsActivity{

TextViewtv;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

//TODOAuto-generatedmethodstub

super.onCreate(savedInstanceState);

setContentView(R.layout.second);

tv=(TextView)findViewById(R.id.tv);

//获得Intent对象

Intentintent=getIntent();

//获得Intent对象中包装的action

Stringaction=intent.getAction();

//将action设置在TextView中

tv.setText(action);

}

}

程序运行结果如下:

2、访问系统Action属性

AndroidIntent类中定义了很多Action属性常量,这些有标准Activity和BroadcastReceiver的。

上面我们讲述如何访问自定义Action属性。

下面我们将讲述如何访问系统Action属性。

例如,我们实现一个发送短信的程序,在这个程序中,我们需要选择对方的电话号码,这时候我们可以调用系统电话本来查找电话号码。

我们可以使用Intent.ACTION_GET_CONTENT常量调用系统Activity来实现该功能。

在工程res\layout\目录中创建一个main.xml布局文件,在其中添加一个Button组件。

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

orientation="vertical"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

>

id="@+id/button01"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

text="调用电话簿"/>

创建一个Demo3Activity类。

packagecom.yidu.demo;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

publicclassDemo3ActivityextendsActivity{

Buttonbtn;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btn=(Button)findViewById(R.id.button01);

btn.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

Intentintent=newIntent();

//设置Action属性为得到联系人

intent.setAction(Intent.ACTION_GET_CONTENT);

//设置其类型

intent.setType("vnd.android.cursor.item/phone");

//开启Activity。

startActivity(intent);

}

});

}

}

3、Intent的Data属性

Intent的Data属性是执行动作的URI和MIME类型,不同的Action有不同的Data数据指定。

例如,ACTION_EDITAction应该和要编辑的文档URIData匹配,Action_VIEW应用和要显示的URI匹配。

下面列出了一些常见的Action和Data的匹配应用。

Action属性

Data属性

说明

ACTION_VIEW

content:

//contacts/people/1

显示_id为1的联系人信息

ACTION_DIAL

content:

//contacts/people/1

将_id为1的联系人电话号码显示在拨号界面中

ACTION_VIEW

tel:

123

显示电话为123的联系人信息

ACTION_VIEW

在浏览器中浏览该网址

ACTION_VIEW

File:

///sdcard/mymusic.mp3`

播放Mp3

ACTION_VIEW

geo:

39.3256.116.2312

显示地图

案例如下:

在res\layout\目录下创建一个main.xml的文件。

xmlversion="1.0"encoding="utf-8"?

>

android="

android:

orientation="vertical"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

>

id="@+id/btn"

android:

text="按钮"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

创建一个测试的Activity的界面类。

importandroid.app.Activity;

importandroid.content.Intent;

import.Uri;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

publicclassMyActivityextendsActivity{

Buttonbtn;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

btn=(Button)findViewById(R.id.btn);

btn.setOnClickListener(newOnClickLi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2