在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才会被列入可选列表。

更多相关文章

  1. Android(安卓)Wifi模块分析(三)
  2. Android中dispatchDraw分析
  3. Android四大基本组件介绍与生命周期
  4. Android之菜单总结
  5. Android学习篇之Menu的使用
  6. Android(安卓)Service AIDL
  7. TabHost与RadioGroup结合完成的菜单【带效果图】5个Activity
  8. Android调用天气预报的WebService简单例子
  9. android打电话发短信

随机推荐

  1. Android的系统服务一览
  2. Android中的SrollView滚动详解
  3. android v13 的新特性
  4. 运行模拟器找不到路径 AVD 更改路径
  5. 转:Android(安卓)测试 Appium、Robotium、
  6. Still no compatible AVDs with target '
  7. Ubuntu下Android4.0源码的下载和编译
  8. android软键盘状态监听最稳的方法,属性动
  9. 在Android中如何测量View的宽度和高度
  10. Android(安卓)Studio 多渠道打包以及常见