一旦为Intent同时指定了Action、Data属性,那么Android将可根据指定的数据类型来启动特定的应用程序,并对指定数据类型执行相应的操作。
下面是几个Action属性、Data属性的组合。
- ACTION_VIEW content://com.android.contacts/contacts/1:显示标识为1的联系人的信息。
- ACTION_EDIT content://com.android.contacts/contacts/1:编辑标识为1的联系人的信息。
- ACTION_DIAL content://com.android.contacts/contacts/1:显示向标识为1的联系人拨号的界面。
- ACTION_VIEW tel:123:显示向指定号码123拨号的界面。
- ACTION_DAL tel:123:显示向指定号码123拨号的界面。
- ACTION_VIEW content://contacts/people/:显示所有联系人列表的信息,通过这种组合可以非常方便地查看系统联系人。
下面的程序示范通过同时为Intent指定Action、Data属性来启动特定程序并操作相应的数据。下面的程序的界面很简单,它只包含两个按钮,其中一个按钮用于浏览指定网页,一个按钮用于编辑指定联系人信息。
package com.example.studyintent; import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class ActionData extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_action_data);
Button bn=(Button)findViewById(R.id.bn);
//为bn按钮添加一个监听器
bn.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//创建Intent
Intent intent=new Intent();
String data="http://www.crazyit.org";
//根据指定字符串解析出Uri对象
Uri uri=Uri.parse(data);
//为Intent设置Action属性
intent.setAction(Intent.ACTION_VIEW);
//设置Data属性
intent.setData(uri);
startActivity(intent);
} }); Button edit=(Button)findViewById(R.id.edit);
//为edit按钮添加一个监听器
edit.setOnClickListener(new OnClickListener(){ @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//创建Intent
Intent intent=new Intent();
//为Intent设置Action属性(动作为:编辑)
intent.setAction(Intent.ACTION_EDIT);
String data="content://com.android.contacts/contacts/1";
//根据指定字符串解析出Uri对象
Uri uri=Uri.parse(data);
//设置Data属性
intent.setData(uri);
startActivity(intent);
}
}); Button call=(Button)findViewById(R.id.call);
//为edit按钮添加一个监听器
call.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//创建Intent
Intent intent=new Intent();
//为Intent设置Action属性(动作为:拨号)
intent.setAction(Intent.ACTION_DIAL);
String data="tel:13800138000";
//根据指定字符串解析出Uri对象
Uri uri=Uri.parse(data);
//设置Data属性
intent.setData(uri);
startActivity(intent);
}
}); } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.action_data, menu);
return true;
} }
运行上面的程序,单击第一个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_VIEW,Data=http://www.crazyit.org)对应的Activity,将看到打开www.crazyit.org的界面,如图5.13所示。
单击第二个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_EDIT,Data=content://com.android.contacts/contacts/1)对应的Activity,将看到编辑标识为1的联系人的界面。
单击第三个按钮,该按钮单击时启动Intent(Action=Intent.ACTION_DIAL,Data=tel:13800138000)对应的Activity,将看到程序向13800138000拨号的界面,如图5.15所示。
Intent的属性及Intent-filter配置——实例Action、Data属性启动系统Activity的更多相关文章
-
Intent的属性及Intent-filter配置——指定Action、Category调用系统Activity
Intent代表了启动某个程序组件的“意图”,实际上Intent对象不仅可以启动本应用内程序组件,也可启动Android系统的其他应用的程序组件,包括系统自带的程序组件——只要权限允许. 实际上And ...
-
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
什么是对象和类 https://www.cnblogs.com/poloyy/p/15178423.html 什么是 Python 类.类对象.实例对象 https://www.cnblogs.com ...
-
Struts2中配置默认Action
1.当访问的Action不存在时,页面会显示错误信息,可以通过配置默认Action处理用户异常的操作:2.配置方法: 在struts.xml文件中的<package>下添加如下内容: ...
-
JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表
一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...
-
html 5实用特性之data属性
HTML 5之前,我们必须依赖于class和rel属性来存储需要在网站中使用的数据片段,这种做法有时会在网站的外观和实用性之间产生冲突.而HTML 5 Data属性的存在就能很好满足需要. HTML5 ...
-
Kendo UI 初始化 Data 属性
初始化 Data 属性 前面在介绍准备 Kendo UI 开发环境时我们使用 jQuery 的方法将一个 HTML 元素转换成一个 Kendo UI 控制项: $(“#datepicker”).ke ...
-
HTML 5:你必须知道的data属性
原文:All You Need to Know About the HTML5 Data Attribute 译文:你必须知道HTML 5 的Data属性 译者:dwqs HTML 5的Data属性可 ...
-
Android中使用Intent的Action和Data属性实现点击按钮跳转到拨打电话和发送短信
场景 点击拨打电话按钮,跳转到拨打电话页面 点击发送短信按钮,跳转到发送短信页面 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程 ...
-
在Android中Intent的概念及应用(一)——显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...
随机推荐
-
bzoj3316: JC loves Mkk
Description Input 第1行,包含三个整数.n,L,R.第2行n个数,代表a[1..n]. Output 仅1行,表示询问答案.如果答案是整数,就输出整数:否则,输出既约分数“P/Q”来 ...
-
Apache+MySQL+PHP开发环境的搭建(二)
通过自主选择相应的apache,mysql,php等软件,根据自己的应用开发需求进行安装.此方法搭建的环境自主性较强,搭建过程较为复杂,繁琐. 1.所需软件: Apache: http-2.2.22- ...
-
关于TreeView的选中事件
在使用TreeView的选中事件时,发现,SelectAfter在第一次选中时触发,你再次点击时这个事件并不能引发它.所以找了找,发现有另两种解决办法. 最好的就是使用:NodeMouseClick, ...
-
时间复杂度---我又要想起初中数学老师的脸了xxxxx
时间复杂度: 常用的时间复杂度有:常数级,对数级,线性级 线性对数级 平方级,立方级别,多项式级别,指数级别,阶乘级别 这里我们主要探讨对数级,线性级,平方级,指数级---为什么不讨论其他的?别的我也 ...
-
Tomcat安装
第一步,下载: 直接上下载地址:http://tomcat.apache.org/download-70.cgi 直接下载如下选中即可: 第二步,安装: 然后解压(这里我是放在下载里),再进入bin目 ...
-
WebService中方法的相关注意事项
2014-11-14 在WebService中定义方法,有一些注意的地方: (1) 方法上面需要增加 [WebMethod] 属性,标志该方法是一个WebService方法: (2)方法的返回值可以为 ...
-
python27+django调用数据库
我用的mysql版,先上无模板的版本,在views里加上 import MySQLdb 然后在下方写函数 def use_databases(request): db = MySQLdb.connec ...
-
WebKit历史项管理的实现
历史项管理依据标准定义,由Page管理一个Joint Session History, 包括了各个子Frame的历史项.逻辑上相应例如以下的关系: 从上面看三个层次:Page,Frame,以及JS B ...
-
使用 CXF 做 webservice 简单例子[转]
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...
-
Kendo UI开发教程(6): Kendo DataSource 概述
Kendo 的数据源支持本地数据源(JavaScript 对象数组),或者远程数据源(XML, JSON, JSONP),支持CRUD操作(创建,读取,更新和删除操作),并支持排序,分页,过滤,分组和 ...