Android基础备忘(android中的分享功能)

标签: android 基础 android | 发表时间:2012-03-14 01:38 | 作者:lganggang131
出处:http://blog.csdn.net

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 查看评论

相关 [android 基础 android] 推荐:

Android APP安全测试基础

- - 阿德马Web安全
自从去了新公司之后,工作太忙,变的有点懒了,很久没有更新Blog. 今天跟几个小伙伴一起吃饭,小伙伴提起我的Blog,想想是该更新更新了,就把我投稿给sobug的这篇转过来吧,关于Android app安全测试的基础东东,在Sobug 的url:. 最近这两年移动端真是非常火,每个单位或多或少都会有那么几款App,对于我们Web安全攻城师来说,App安全也需要或多或少的了解一些.

Android基础备忘(android中的分享功能)

- - CSDN博客推荐文章
Android的编程界面相当直截了当,只要了解Activity和View,就可以写出可用的应用. Android是一种手机操作系统,它提供了对各种与联网及通讯相关的支持. 善用这些支持,才能开发出贴近移动应用特点的程序. 在Android的种种编程概念中,尤为值得注意的是Intent. Intent的英文词义是“意图”,而在Android的编程框架里面,也正是体现“想要做某事”的概念.

【Android不太基础】换个思路来监听home键

- - CSDN博客推荐文章
一监听返回键或者菜单键的情况比较多,但也不排除有监听home键的需求啊. 监听返回键或者菜单键,可以通过重写activity的dispatchKeyEvent方法,判断event对象的KeyCode值来实现. 虽然android提供了一个常量KeyEvent.KEYCODE_HOME,让我们以为可以监听home键,但其实是不行的.

Android 遥控车

- CasparZ - LinuxTOY
您确定您真的会用 Android 手机玩赛车. 16 岁的法国学生 Jonathan Rico 使用 Android 手机通过蓝牙实现了对改装玩具汽车的遥控. 操控的方式和那些标榜的智能手机游戏一样,使用重力感应,差别是这次控制的是现实世界中的遥控汽车. 收藏到 del.icio.us |.

Android免费?毛

- Ruby - FeedzShare
来自: 36氪 - FeedzShare  . 发布时间:2011年08月17日,  已有 2 人推荐. 微软CEO Steve Ballmer在预测竞争对手产品时通常口无遮拦. 比如他去年抨击Google的Android战略时,很多人都不屑一顾. 接着Android蚕食了微软的地盘,后来又开始侵犯苹果的地盘.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

Android 4.0发布

- coofucoo - Solidot
Shawn the R0ck 写道 "2011年10月19日早上10点,谷歌与三星联手在香港发布了Android 4.0和Galaxy Nexus. " Android 4.0 的主要特性包括:更精细的UI,加强多任务和通知功能,锁屏下可打开摄像头和浏览通知,改进文本输入和拼写检查;增强视频录制和图像编辑功能,支持剪裁和旋转图片、消除红眼、添加效果等;面部识别解锁;Android Beam允许两台支持NFC的设备之间交换应用程序、联系人、音乐和视频;Wi-Fi Direct,蓝牙HDP,等等.

NoScript For Android发布

- John - Solidot
用于屏蔽脚本的浏览器流行扩展NoScript发布了Android版本. 开发者称已经在Firefox for Android测试过,此外也应该能工作在基于Maemo的设备上. 移动版NoScript可以帮助移动用户抵抗基于脚本的攻击. Android平台上的扩展功能和桌面版相似,允许用户对每个网站单独设置脚本执行许可.

Android入门:ContentProvider

- - ITeye博客
一、ContentProvider介绍. ContentProvider翻译为“内容提供者”;. 定义:指该应用包含一些方法,供外界访问,其他应用程序可以调用该方法,比如如果应用A创建了一个数据库“test.db”,默认是私有的,即其他应用程序不能对其进行操作,但是如果应用A使用了ContentProvider,则其他应用程序可以访问该数据库;.