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





//分享到开心网api
kaixin = (Button) findViewById(R.id.Button05);
kaixin.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

startActivity(new Intent(
Intent.ACTION_VIEW,
Uri
.parse("http://www.jiathis.com/send/?webid=kaixin001&url=http://ruixiazun.blog.163.com&title=雪山中的狼")));

}
});

//分享到人人网 api
renren = (Button) findViewById(R.id.Button04);
renren.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

startActivity(new Intent(
Intent.ACTION_VIEW,
Uri
.parse("http://www.jiathis.com/send/?webid=renren&url=http://ruixiazun.blog.163.com&title=雪山中的狼")));

}
});

分享更多网址的api接口如下:只需修改id 后面跟自定义的url和title、
email http://www.jiathis.com
qzone http://qzone.qq.com
tsina http://t.sina.com.cn
t163 http://t.163.com
renren http://www.renren.com
sohu http://bai.sohu.com
hi http://hi.baidu.com
fanfou http://fanfou.com/
i139 http://go.139.com/
youshi http://www.ushi.cn
hotmail http://www.hotmail.com
feixin http://feixin.10086.cn
fav ——
buzz http://www.google.com
baidu http://cang.baidu.com
tsohu http://t.sohu.com
tqq http://t.qq.com
kaixin001 http://www.kaixin001.com
taobao http://www.taobao.com
xiaoyou http://xiaoyou.qq.com
gmail http://www.gmail.com
ymail http://mail.yahoo.com
51 http://www.51.com/
google http://www.google.com
qq http://shuqian.qq.com/
sina http://vivi.sina.com.cn
yahoo http://myweb.cn.yahoo.com/
hexun http://www.hexun.com
139 http://www.139.com
haoei http://www.haoei.com/
douban http://www.douban.com
xianguo http://www.xianguo.com
renjian http://www.renjian.com
delicious http://www.delicious.com
youdao http://shuqian.youdao.com
msn http://cn.msn.com
live http://favorites.live.com/
115 http://fav.115.com
yesky http://hot.yesky.com
tieba http://tieba.baidu.com
digu http://www.digu.com
zhuaxia http://www.zhuaxia.com
zuosa http://zuosa.com
follow5 http://www.follow5.com
digg http://digg.com
fb http://www.facebook.com
myspace http://www.myspace.com
wealink http://www.wealink.com
leshou http://leshou.com
tongxue http://tongxue.com/
shouker http://www.shouker.com
9fav http://www.9fav.com
99earth http://www.99earth.org
dig24 http://www.dig24.cn
digbuz ——
baohe http://www.baohe.com
twitter http://twitter.com
poco http://www.poco.cn
cnfol http://t.cnfol.com
diglog http://www.diglog.com
waakee http://www.waakee.com
cyzone http://u.cyzone.cn
114la http://www.114la.com
chouti http://www.chouti.com
douban9dian http://9.douban.com
hemidemi http://www.hemidemi.com
yijee http://www.yijee.com
pdfonline http://www.pdfonline.com
translate http://translate.google.com/
diigo http://www.diigo.com
friendfeed http://www.friendfeed.com
mixx http://www.mixx.com
netvibes http://www.netvibes.com
pingfm http://ping.fm
polladium http://www.polladium.com
wong http://www.mister-wong.cn
plurk http://www.plurk.com
ask http://www.ask.com
printfriendly http://www.printfriendly.com
googlereader http://www.google.com/reader/
evernote http://www.evernote.com/
linkedin http://www.linkedin.com
netlog http://www.netlog.com
phonefavs http://phonefavs.com
plaxo http://www.Plaxo.com
reddit http://www.reddit.com
stumbleupon http://www.stumbleupon.com
funp http://www.funp.com
myshare http://www.myshare.com
fwisp http://fwisp.com

更多相关文章

  1. android 画图程序
  2. Android应用程序调用系统解锁页面
  3. Android应用程序启动过程源代码分析(4)
  4. Android应用程序启动过程源代码分析(3)
  5. Android应用程序启动过程源代码分析(2)
  6. Android 分享微信小程序
  7. 【Android】_SmsReceicer_短信监听

随机推荐

  1. Unity与Android交互-扩展Unity的MainActi
  2. android 文件上传的类--完整 可以直接被
  3. android(NDK+JNI)---Android(安卓)JNI开
  4. android activity 生命周期详解
  5. 树莓派3(全志A20)Android固件编译
  6. 站在大神肩膀上,深入理解 Android事件分发
  7. :Android核心模块及相关技术
  8. android中SMS
  9. 选项菜单_上下文菜单_子菜单_图标菜单_自
  10. android实现获取有线和无线Ip地址的方法