- 浏览: 3460018 次
- 性别:
- 来自: China
文章分类
- 全部博客 (536)
- ajax (1)
- Algorithm (14)
- Android (40)
- CSS/HTML... (2)
- defy (3)
- DesignPattern (2)
- dorado (0)
- Drools (6)
- English/日本語 (7)
- Flex (2)
- Framework (0)
- Google (3)
- hibernate (13)
- homework (3)
- HTML5 (0)
- IDE (29)
- java (45)
- javaee (7)
- Javascript (14)
- java组件 (5)
- jQuery (4)
- jsp (8)
- jsf (2)
- Linux (2)
- lucene (0)
- mysql (6)
- news (3)
- Oracle (8)
- other (4)
- PHP (5)
- Python (0)
- Software Engineering (3)
- spring (7)
- struts1.x (14)
- struts2.x (14)
- strolling in cloud (1)
- subject:javaEnhance (20)
- Tomcat (7)
- validator (3)
- 学习·方法·心得 (8)
- .NET (2)
- vba (6)
- groovy (5)
- grails (2)
- SWT (0)
- big data (1)
- perl (1)
- objective-c (50)
- product (1)
- mac (7)
- ios (188)
- ios-phone (2)
- ios-system (15)
- ios-network (5)
- ios-file (4)
- ios-db (1)
- ios-media (3)
- ios-ui (27)
- ios-openSource (6)
- ios-animation (5)
- ios-drawing (7)
- c (2)
- ios-app (2)
- ios-course (15)
- ios-runtime (14)
- ios-code (8)
- ios-thread (8)
- ios-LBS (2)
- ios-issue (1)
- ios-design (2)
- Jailbreak (2)
- cocos2d (0)
- swift (16)
- ios-framework (4)
- apple watch (4)
- ios-web (1)
- react native (3)
- TVOS (1)
- OpenGL (1)
最新评论
-
xiaobinggg:
...
Session机制详解 -
菜鸟学生会:
Drools规则工作流引擎开发教程网盘地址:http://pa ...
Drools入门-----------环境搭建,分析Helloworld -
wangyudong:
不是很好用,不支持自动化测试RESTful API,也不支持自 ...
Simple REST Client POST使用方法 -
Paul0523:
很棒的一篇文章,感谢楼主分享
Session机制详解 -
啸笑天:
获取原型对象的三种方法<script>functi ...
复习JavaScript面向对象技术
实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件。要创建一个实时文件夹,必须要有两个方面的支持。
1,要定义一个用来创建实时文件夹的Activity。
2,所指定数据信息URI的ContentProvider必须支持实时文件夹时文件夹查询
一、定义创建实时文件夹的Activity
想在桌面长按后选择实时文件夹就会弹出一个可用实时文件夹的列表对话框,必须在应用程序内的Activity中添加一个Action为android.intent.action.CREATE_LIVE_FOLDER的IntentFilter。而在这个创建实时文件夹的Activity中,我们要把实时文件夹的信息以附加信息的形式存储在一个Intent对象当中。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.studio.android.ch10.ex2" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyAllContacts" android:label="@string/app_name"> <intent-filter> <action android:name= "android.intent.action.CREATE_LIVE_FOLDER" /> <category android:name= "android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest>
由于Content的ContentProvider已经实现了对实时文件夹的相关支持
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.provider.Contacts; import android.provider.LiveFolders; public class MyAllContacts extends Activity { public static final Uri LIVE_FOLDER_URI = Uri.parse("content://contacts/live_folders/people"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getIntent().getAction() .equals(LiveFolders.ACTION_CREATE_LIVE_FOLDER)) { Intent intent = new Intent(); intent.setData(LIVE_FOLDER_URI);//在文件夹,对于要查询的URI则是以Data的形式存储在Intent对象中。Contacts的ContentProvider已经实现了对实时文件夹的相关支持。 intent.putExtra( LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT, new Intent(Intent.ACTION_VIEW, Contacts.People.CONTENT_URI)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, "MyAllContacts"); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST);//还可以设置LiveFolders.DISPLAY_MODE_LIST setResult(RESULT_OK, intent); } else { setResult(RESULT_CANCELED); } finish(); } }
二、定义支持实时文件夹的ContentProvider
要使一个ContentProvider支持实时文件夹的查询,主要要实现下面2个:
1,为实时文件夹查询定义一个专门的URI
2,在query查询方法中针对实时文件夹的路径进行相应的查询然后返回含有特定列名的Cursor
在CountryCode.java中
//为URI匹配器增加实时文件夹URI的匹配号码
public static final int LIVE_FOLDER = 3;
---
---
---
//定义实时文件夹的URI
public static final Uri LIVE_FOLDER_URI =
Uri.parse("content://" + AUTHORITY + "/livefolder");
在MyProvider.java中
static {
sMatcher = new UriMatcher(UriMatcher.NO_MATCH);
----
---
sMatcher.addURI(CountryCode.AUTHORITY,
"livefolder/", CountryCode.LIVE_FOLDER);
}
---
---
@Override
public Cursor query(Uri uri, String[] projection,
String selection, String[] args,String order) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor c;
switch (sMatcher.match(uri)) {
----
case CountryCode.LIVE_FOLDER:
String[] myProjection = {
//注意更改别名
CountryCode.ID + " AS " + LiveFolders._ID,
CountryCode.COUNTRY + " AS " + LiveFolders.NAME,
CountryCode.CODE + " AS " + LiveFolders.DESCRIPTION
};
c = db.query(CountryCode.TB_NAME, myProjection, selection,
args,null,null,order);
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}
CreateLiveFolder.java中
import android.app.Activity;
import android.content.Intent; import android.os.Bundle; import android.provider.LiveFolders; public class CreateLiveFolder extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getIntent().getAction() .equals(LiveFolders.ACTION_CREATE_LIVE_FOLDER)) { Intent intent = new Intent(); intent.setData(CountryCode.LIVE_FOLDER_URI); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, "CountryCode"); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST); setResult(RESULT_OK, intent); } else { setResult(RESULT_CANCELED); } finish(); } }
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.studio.android.chp10.ex3" android:versionCode="1" android:versionName="1.0.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SQLite2" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="MyProvider" android:authorities="com.studio.andriod.provider.countrycode" /> <activity android:name=".CreateLiveFolder"> <intent-filter> <action android:name= "android.intent.action.CREATE_LIVE_FOLDER" /> <category android:name= "android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>
发表评论
-
Android 桌面部件
2011-07-06 19:26 1860桌面部件是一种利用AppWidget框架将应用程序的某个部件放 ... -
android 添加桌面快捷方式
2011-07-05 19:20 13268、在桌面创建快捷方式方法: 方法一:通过长按某一个应用程序的 ... -
Android权限详解
2011-07-04 09:43 2235在Android的设计中,资源的访问或者网络连接,要得到这 ... -
Android权限注解
2011-07-04 09:33 3469Android应用程序在使用很多功能的时候必须在Mainife ... -
ListView使用SimpleAdapter加载网络图片
2011-07-02 19:14 7701ListView是一种常见的布局,通过SimpleAdapte ... -
android:layout_gravity 和 android:gravity 的区别
2011-07-02 19:00 2096gravity 这个英文单词是重心的意思,在这里就表示 ... -
横竖屏切换时不销毁当前activity 和 锁定屏幕
2011-07-02 18:58 3622首先在Mainifest.xml的Activity元素 ... -
onSaveInstanceState和onRestoreInstanceState触发的时机
2011-07-02 17:49 2873当某个activity变得“容易”被系统销毁时,该ac ... -
strings.xml文件中提供占位符来格式化数据
2011-07-01 16:16 3213有些朋友可能会动态的修改Android中strings. ... -
ANDROID开机动画分析
2011-05-25 15:40 5923Android 2.0 开机动画文件分析。开机动画文件:boo ... -
Android专栏地址,真的不错啊!!!
2011-05-22 20:22 1647第三极: http://disanji.net/cate ... -
A1200入门DIY
2011-05-22 11:40 0A1200入门DIY 2007-04-16 19:33 ... -
android用户界面数据绑定
2011-05-19 21:25 5277当我们想用合适的方式显示并操作一些数据(如数组,链表,数据库等 ... -
emulator: ERROR: the user data image is used by another emulator. aborting
2011-05-19 13:48 2348今天早上起床,运行项目时报错:Error the use ... -
Android Map demo
2011-04-23 22:24 3388AndroidManifest.xml <?xm ... -
Android Map申请key
2011-04-23 22:02 31101. 首先先要获取你的debug keystore位置 ... -
conversion to dalvik format failed with error 1
2011-04-23 21:52 3469android低版本工程(如1.5)放到高版本环境中(如2.2 ... -
Android GPS基础
2011-04-20 22:14 2774package org.example.locationtes ... -
Android API:Activity.managedQuery()
2011-04-20 19:22 2622描述: 获取一个包含指定数据的 Cursor 对 ... -
Android与Internet(获取资源,多线程断点下载,get/post发送,发送xml)
2011-04-07 20:13 6851从Internet获取数据 利用HttpURLConn ...
相关推荐
本文实例讲述了Android实时文件夹创建方法。分享给大家供大家参考。具体如下: 实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件。要创建一个实时文件夹,必须要有两方面的支持。一方面是,...
android 删除文件夹及文件夹下面的所有文件
android下选择图片文件夹并显示对应文件夹下的图片文件,有需要的可以参考一下。 android下选择图片文件夹并显示对应文件夹下的图片文件,有需要的可以参考一下。 android下选择图片文件夹并显示对应文件夹下的图片...
在Android开发中,获取文件夹中的图片并展示在GridView中是一项常见的需求,特别是在构建一个相册应用或者需要从用户设备中选择图片的应用场景下。以下将详细介绍如何实现这个功能。 首先,我们需要理解Android的...
在Android平台上,从指定文件夹显示图片涉及到一系列的步骤和技术,包括文件系统操作、图片加载库的使用以及UI设计。以下是对这个主题的详细讲解: 首先,我们需要理解Android的文件系统结构。Android设备通常有两...
文件文件夹批量蓝牙分享 android的蓝牙批量分享,可以参考
本文将深入探讨如何在Android中创建和删除SD卡上的文件夹,以及如何利用ListView和BaseAdapter来显示这些文件夹信息。 首先,让我们了解如何获取SD卡的路径。在Android中,SD卡通常被视为外部存储,可以通过`...
思路: 获取当前目录下的文件列表,然后显示到listview上面,当点击某个文件夹,则重新加载listview的内容为该文件夹下的文件列表,如果点击文件,则选择打开文件...实现和小米自带文件夹浏览器需求的文件夹浏览器实现
在Android系统中,每个应用程序都有自己的私有文件夹,用于存储应用相关的数据,这些数据对其他应用程序来说是不可见的,确保了数据的安全性。本文将深入探讨如何在Android中进行文件的写入与读取操作,以及相关工具...
在Android系统中,新建文件夹的操作是通过编程的方式实现的,这对于开发人员来说是一项基本技能。下面我们将深入探讨如何在Android应用中实现这个功能,包括理解Android文件系统、获取存储权限、创建文件夹以及源码...
《Android文件夹管理器》是2017年9月19日使用Android Studio(简称AS)开发的一款简单易用的文件管理应用。这款应用的核心功能是帮助用户方便地管理和浏览设备上的文件夹,它的代码结构简洁,适合初学者学习和修改以...
这是自己多年来做Launcher对Fold模块的一些总计,需要的拿去用吧!
在Android平台上,浏览文件夹和目录是开发过程中常见的任务,特别是在构建涉及用户交互或数据管理的应用时。Android提供了多种API和工具,使得开发者能够轻松地访问和操作设备上的文件系统。以下将详细介绍如何在...
"Android访问windows共享的文件夹,并进行文件读写"是一个常见的需求,这通常涉及到网络文件系统(Network File System, NFS)的使用。在Android中,一个常用且强大的库是SMBJ,它允许我们通过Java实现Server ...