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的程序列表

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

更多相关文章

  1. Android(安卓)AsyncTask完全解析,带你从源码的角度彻底理解
  2. Android中“分享”功能的实现
  3. Android基础备忘(android中的分享功能)
  4. Android中“分享”功能的实现
  5. Android中“分享”功能的实现
  6. Android(安卓)AIDL机制
  7. Android中“分享”功能的实现
  8. 详解Android技术的生态系统及其安全机制
  9. Android(安卓)Handler解析和相关问题

随机推荐

  1. android Notification 的使用
  2. Android4.2.2自增物理按键(frameworks)
  3. Android(安卓)7.1 源码编译
  4. Android(安卓)studio 工程配置相关问题-.g
  5. 为Activity屏幕的标题添加图标
  6. Android中文API(117)——WrapperListAdap
  7. Android中禁止多点触控的设置
  8. Android架构分析之硬件抽象层(HAL)
  9. Android(安卓)HttpClient post Multipart
  10. android中的autocomplete例子小结