Android中的互联网应用Word格式.docx
- 文档编号:6915057
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:23
- 大小:74.34KB
Android中的互联网应用Word格式.docx
《Android中的互联网应用Word格式.docx》由会员分享,可在线阅读,更多相关《Android中的互联网应用Word格式.docx(23页珍藏版)》请在冰点文库上搜索。
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"
>
LinearLayoutxmlns:
android="
android:
orientation="
vertical"
layout_width="
fill_parent"
layout_height="
>
Buttonandroid:
text="
测试Intent的组件名称属性"
id="
@+id/myButton01"
wrap_content"
/>
/LinearLayout>
在“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组件。
LinearLayout
xmlns:
match_parent"
<
TextViewandroid:
@+id/TextView01"
在该工程中创建另外一个名为MyActivity的类。
packagecom.yidu.demo;
importandroid.widget.TextView;
publicclassMyActivityextendsActivity{
privateTextViewtv;
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属性。
TextView
@string/hello"
/>
测试action属性"
android:
@+id/btn"
创建一个工程,在“com.yidu.test”包中创建一个MyActivity类。
publicfinalstaticStringMY_ACTION="
com.yidu.test.MY_ACTION"
;
publicvoidonCreate(BundlesavedInstanceState){
btn=(Button)findViewById(R.id.btn);
//实例化Intent类
//为Intent对象设置Action属性
intent.setAction(MY_ACTION);
在工程的res\layout\目录下创建一个second.xml布局文件,在其中添加一个TextView视图组件。
@+id/tv"
android:
创建一个SecondActivity类,在其顶部声明TextView组件,在onCreate()方法中实例化它,获得Intent实例,从而获得action属性并显示在TextView中。
packagecom.yidu.test;
publicclassSecondActivityextendsActivity{
TextViewtv;
//TODOAuto-generatedmethodstub
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组件。
@+id/button01"
android:
调用电话簿"
创建一个Demo3Activity类。
publicclassDemo3ActivityextendsActivity{
/**Calledwhentheactivityisfirstcreated.*/
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.button01);
btn.setOnClickListener(newOnClickListener(){
Intentintent=newIntent();
//设置Action属性为得到联系人
intent.setAction(Intent.ACTION_GET_CONTENT);
//设置其类型
intent.setType("
vnd.android.cursor.item/phone"
//开启Activity。
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
将_id为1的联系人电话号码显示在拨号界面中
tel:
123
显示电话为123的联系人信息
在浏览器中浏览该网址
File:
///sdcard/mymusic.mp3`
播放Mp3
geo:
39.3256.116.2312
显示地图
案例如下:
在res\layout\目录下创建一个main.xml的文件。
按钮"
创建一个测试的Activity的界面类。
import.Uri;
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(newOnClickLi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 中的 互联网 应用