Android开发者文档笔记(二)
2015-12-08 20:54
274 查看
***分享简单的数据**两个Application数据*发送文本内容
ntent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");sendIntent.setType("text/plain");startActivity(sendIntent);Intent的使用需要规定Action,而我们通常使用的动作有SEND,VIEW..然而,这种动作的申明是一对多的,也就是上面代码中的ACTION_SEND动作执行时,会有多个Activity对应,系统就会提供一个列表,供使用者选择。或者自己实例化一个选择框:Intent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);//EXTRA_EMAIL, EXTRA_CC, EXTRA_BCC, EXTRA_SUBJECTsendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");sendIntent.setType("text/plain");startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));*发送二进制文件</pre></p><p><pre name="code" class="java">//发送一张图片Intent shareIntent = new Intent();shareIntent.setAction(Intent.ACTION_SEND);shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);shareIntent.setType("image/jpeg");startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));//发送图片数组ArrayList<Uri> imageUris = new ArrayList<Uri>();imageUris.add(imageUri1); // Add your image URIs hereimageUris.add(imageUri2);Intent shareIntent = new Intent();shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);shareIntent.setType("image/*");startActivity(Intent.createChooser(shareIntent, "Share images to.."));*为一个Activity添加多个意图:
<activity android:name=".ui.MyActivity" ><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter><intent-filter><action android:name="android.intent.action.SEND" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="text/plain" /></intent-filter><intent-filter><action android:name="android.intent.action.SEND_MULTIPLE" /><category android:name="android.intent.category.DEFAULT" /><data android:mimeType="image/*" /></intent-filter></activity>*接收文件:
void onCreate (Bundle savedInstanceState) {...// Get intent, action and MIME typeIntent intent = getIntent();String action = intent.getAction();String type = intent.getType();if (Intent.ACTION_SEND.equals(action) && type != null) {if ("text/plain".equals(type)) {handleSendText(intent); // Handle text being sent} else if (type.startsWith("image/")) {handleSendImage(intent); // Handle single image being sent}} else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && type != null) {if (type.startsWith("image/")) {handleSendMultipleImages(intent); // Handle multiple images being sent}} else {// Handle other intents, such as being started from the home screen}...}void handleSendText(Intent intent) {String sharedText = intent.getStringExtra(Intent.EXTRA_TEXT);if (sharedText != null) {// Update UI to reflect text being shared}}void handleSendImage(Intent intent) {Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);if (imageUri != null) {// Update UI to reflect image being shared}}void handleSendMultipleImages(Intent intent) {ArrayList<Uri> imageUris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);if (imageUris != null) {// Update UI to reflect multiple images being shared}}对于二进制文件来说,有可能会比较大,android官方建议使用独立线程进行接收,如有必要,再显示到UI中*对于ActionBar上的菜单编写://实现分享功能
<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/menu_item_share"android:showAsAction="ifRoom"android:title="Share"android:actionProviderClass="android.widget.ShareActionProvider" />...</menu>
private ShareActionProvider mShareActionProvider;...@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate menu resource file.getMenuInflater().inflate(R.menu.share_menu, menu);// Locate MenuItem with ShareActionProviderMenuItem item = menu.findItem(R.id.menu_item_share);// Fetch and store ShareActionProvidermShareActionProvider = (ShareActionProvider) item.getActionProvider();// Return true to display menureturn true;}// Call to update the share intentprivate void setShareIntent(Intent shareIntent) {if (mShareActionProvider != null) {mShareActionProvider.setShareIntent(shareIntent);}}
相关文章推荐
- 我是运营,我没有假期
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- 100 个最佳 Ubuntu 应用(中)
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 24 个必备的 Linux 应用程序
- 注册表趣味应用小集
- 远程控制技术的应用
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 路由器访问列表的应用
- xDSL技术及其应用
- 修复mysql数据库
- 基于XML的桌面应用
- SQL Server 2008 R2 应用及多服务器管理
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- C#生成Word文档代码示例