Android的编程界面相当直截了当,只要了解Activity和View,就可以写出可用的应用。不过这还不够。Android是一种手机操作系统,它提供了对各种与联网及通讯相关的支持。善用这些支持,才能开发出贴近移动应用特点的程序。

在Android的种种编程概念中,尤为值得注意的是Intent。Intent的英文词义是“意图”,而在Android的编程框架里面,也正是体现“想要做某事”的概念。它的作用是在Activity之间传递数据,或者说,通过传递数据,达到请求另一Activity执行某种操作的目的。下面以一个例子来展示Intent的应用。

应用场景:某个手机阅读器程序,读者看到一篇文章,觉得不错,想要与朋友分享。

应用展现:按手机的Menu键,弹出“分享”菜单,点击后显示一系列分享方式(短信、E-mail等)。

背景知识:Android上不同程序里面的Activity之间可以互相调用。你可以在自己的程序中,调用短信程序,发送一条短信。调用的方式就是向系统提出请求,系统会去调用适当的程序Activity。

以下是源代码:

package com.ghstudio.sharetest;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class Main extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

/*创建菜单 */
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0,0,0,"分享");
return true;
}

public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()){
case 0:
Intent intent=new Intent(Intent.ACTION_SEND);

intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, “分享”);
intent.putExtra(Intent.EXTRA_TEXT, "I would like to share this with you...");
startActivity(Intent.createChooser(intent, getTitle()));
return true;
}
return false;
}
}

代码解析:首先创建一个Options菜单,该菜单只有一个项“分享”。当点击菜单项时,创建一个Intent。该Intent设置为发送给支持ACTION_SEND的Activity。用两个putExtra给Intent设置了SUBJECT和TEXT的数据,再用startActivity方法让系统调用适当的Activity执行之。createChooser方法接受Intent做参数,也同时接纳了Intent里面要求的filter(ACTION_SEND),只有支持ACTION_SEND的Activity才会被列入可选列表。

执行截图:

图一 按下Menu键,显示分享菜单

图二 显示支持ACTION_SEND的程序列表

图三 点击“信息”后,进入短信界面


作者:lganggang131 发表于2012-3-14 9:38:14 原文链接 阅读:13 评论:0 查看评论

更多相关文章

  1. Android(安卓)程式开发:(一)详解Activity —— 1.1生命周期(前言)
  2. android原生和H5交互(转)
  3. Android(安卓)启动流程
  4. Android(安卓)call setting 源码分析 从顶层到底层(下)
  5. android 资源
  6. Android(安卓)Service组件(1)
  7. Android(安卓)Media (Audio) Framework Analyse
  8. Android(安卓)NDK 使用第一步,编译c文件,声明jni并调用。
  9. android与Unity3d交互

随机推荐

  1. Java se之静态代码块、代码块、构造函数
  2. Android使用ichartjs在HTML5中动态绘制图
  3. Android群英传笔记—第1章 Android体系与
  4. Java设计模式之五——装饰模式
  5. 向IntelliJ IDEA创建的项目导入Jar包的两
  6. Javascript设计模式详解
  7. Android之仿美拍主要菜单滑动反弹效果
  8. Java从来不死 PYTHON活跃上升
  9. 接着很久以前的贪吃蛇
  10. redis框架搭建实战(持续更新)