`
huaxin803
  • 浏览: 108672 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
布局是针对用户界面的一个Activity的结构。它定义布局的结构并持有显示给用户的所有元素。你能够用以下两种方法来声明你的布局: 1.在XML文件中声明UI元素。Android提供了一个简单的XML词汇表,用来对应View类和子类。如那些widget构件和layout布局。 2.在运行时实例化布局元素。你的应用程序能够编程创建View和ViewGroup对象(并且操作它们的属性) Android框架为声明和管理应用程序UI提供了灵活的方法,你可以使用上述方法之一或两者同时使用。例如,你能够在XML文件中声明应用程序默认的布局,包括将要在布局中显示的屏幕元素和属性。然后你能够在应 ...
在Android应用程序中,使用View和ViewGroup对象来创建用户界面。有很多类型的View和ViewGroup类,它们都是View类的后代。 View对象是Android平台上用户界面的基础单元。View类用于叫做“widgets“子类的基类,它提供了UI对象完全实现,像文本域和按钮。ViewGroup用于叫做“layouts”子类的基类,它提供了不同类型的布局结构,像线性布局、表格布局、相对布局。 一个View对象就是一个数据结构,它的属性保存了屏幕的特定矩形区域的布局参数和内容。View对象会处理它自己的尺寸、布局、描画、焦点变更、滚动和跟驻留在屏幕特定矩形区域交互的键 ...
线程 应用程序启动时,Android系统会给应用程序创建一个叫做“main”的执行线程。这个线程很重要,因为它负责给适当的用户界面窗口调度事件,包括描画事件。它也是你的应用程序与Android UI工具中的组件交互的线程(这些组 ...
当一个应用程序组件启动并且应用还没有运行任何其他组件时,Android系统会给应用程序启动一个新的带有单一执行线程的Linux进程。默认情况下,同一应用程序的所有组件都运行在相同的进程和线程(被叫做“主”线程)中。如 ...
Intent对象解析 Intent能够被分成两组: 1.用组件的名称把Intent对象明确的指向目标组件(在Intent对象的组件名字段指定目标组件名)。因为一般情况下其他应用的开发者不会了解目标组件的名字,所以通常针对应用程序的内部消息使用明确命名的Intent对象,如一个Activity启动一个下属服务或启动一个姊妹Activity。 2.没有命名目标(Intent对象的组件名字段是空的)的隐式的Intent对象。隐式的Intent对象经常被用于激活其他应用程序中的组件。 Android系统把一个明确命名的Intent对象发送给目标类的一个实例。除了组件名以外,不再用 ...
Android应用程序有三个核心组件---Activity、Service、Broadcast Receiver,Broadcast receiver是通过叫做Intent的消息来激活的。Intent消息是同一个应用程序或不同应用程序运行后,组件间进行绑定的一种能力。Intent对象本身是一个持有要执行操作的抽象描述的无源数据结构,或者在广播的情况下,经常用它来描述一些已经发生或正在发生的事情。给每种类型组件发送Intent对象都有其独立的机制: 1.为了做某些新的操作,把一个Intent对象传递给Context.startActivity()或Activity.startActivity ...
日历的Intent对象 你应用程序不需要读写日历数据的权限,它可以使用Android的Calendar应用程序支持的Intent对象来替代你的应用程序的读写权限。下表列出了Calendar提供器支持的Intent对象: 动作 资源标识(URI) 描述 附加功能 VIEW content://com.android.calendar/time/<ms_since_epoch> 也能够用CalendarContract.CONTENT_URI来引用这个URI 打开由<ms_since_epoch> ...
Calendars表 CalendarContract.Calendars表包含了单个日历的详细信息。下表中Calendars表列对应用程序和同步适配器都是可写的。对于这个表支持的完整的字段列表,请看“CalendarContract.Calendars参考” http://developer.android.com/reference/android/provider/CalendarContract.Calendars.html 常量 描述 NAME 日历的名字 CALENDAR_DISPLAY_NAME 显示给 ...
日历提供器是针对用户日历事件的一个资源库。日历提供器API允许你执行有关日历、、事件、会议、提醒等内容的查询、插入、更新、删除操作。 日历提供器API能够用于应用程序和同步适配器,规则的变化依赖于什么类型的程序制造了这个调用。本文重点关注应用程序怎样使用日历提供API。对于与同步适配器的不同的讨论,请看同步适配器。 通常,要读或写日历数据,应用程序的清单文件中必须包含“用户权限”一节中描述的适当的权限,为了让执行普通的的操作更加容易,日历提供器提供了一组在“日历Intent对象”一节中介绍的Intent对象。这些Intent对象携带了用户要日历提供器来插入、查看和编辑的事件。用户跟日 ...
应用程序能够使用Intent对象间接的访问一个内容提供器。应用程序不调用任何的ContentResolver或ContentProvicer方法,相反,它会给启动它的Activity发送一个Intent对象,这个Intent对象通常是提供自己应用程序的一部分。目标Activity负责获在它的UI中获取和显示数据。依赖Intent中的动作,目标Activity也可以提示用户来修改提供器的数据。Intent对象也可以包含目标Activity在UI中显示的附加数据,然后用户在使用它来修改提供器中的数据之前有改变这个数据的选项。 你可能想使用Intent对象的访问来帮助确保数据的完整性。你的提供器 ...
像Activity和Service组件一样,ContentProvider子类必须在它的应用程序的清单文件中使用<provider>元素来定义。Android系统要从这个元素中获取以下信息: 1. 授权(android:authorities) 在系统中标识整个提供器的符号名。 2. 提供器类名(android:name) 这个类实现了ContentProvider抽象类。 3. 权限 指定其他应用程序要访问这个提供器的数据所必须有的权限的属性: A.android.grantUriPermssions:临时权限标识; B.androi ...
在“安全和权限”的专题中全面详细的描述了有关Android系统的权限和访问。“数据存储”的专题也描述了安全和权限对各种存储类型的影响。因此以下简要介绍几个重点内容: 1. 默认情况下,保存在设备内部存储器上的数据文件是你的应用程序和提供器私有的; 2. 你创建的SQLiteDatabase数据库对你的应用程序和提供器是私有的; 3. 默认情况下,保存在外部存储器中数据文件是共有的,你不能使用内容提供器来限制访问外部存储器中的文件,因为其他的应用程序能够使用其他的API调用来读/写它们; 4. 针对设备上内部存储器的打开或创建文件或SQLite数据库的方法调用,隐含的会把读 ...
合约类是包含了针对URIs、列名、MIME类型、以及属于提供器的其他元数据的常量定义的静态类。这个类在提供器和其他应用程序之间建立一个契约,从而即使在实际的URI、列名等发生了改变,也能确保提供能够正确的被访问。 合约类对开发者也是有帮助的,因为对于它的常量都有助记的名字,因此针对列名或URIs开发者很少会使用错误的值。因为它是一个类,所以它能包含Javadoc的文档,集成开发环境(如Eclipse)能够自动完成来自合约类的常量命名并给对应常量显示Javadoc。 开发者不能访问来自你的应用程序的合约类的类文件,但是他们能够把来自你提供的一个.jar文件静态编译到他们的应用程序中。 ...
ContentProvider类有两个方法能够返回MIME类型: getType() 你必须给提供实现的必要的方法之一。 getStreamTypes() 如果你的提供器提供了文件,那么就期望实现这个方法。 针对表的MIME类型 getType()方法返回了由内容资源标识(URI)参数返回的描述数据类型的MIME格式中的一个字符串。这个URI是被模式化的而不是一个特定的URI;因此,你应该返回跟这个模式匹配的与内容资源标识相关联的数据类型。 对于普通的如text、HTML、JPEG等数据类型,getType()方法应该返回标准的MIME数据类型。在IAN ...
ContentProvider对象实例通过处理来之其他应用程序的请求来管理对结构化数据集的访问。最终调用ContentResolver对象的所有的访问形式,都会对应ContentProvider类的具体方法。 必要的方法 抽象类ContentProvider定义了六个抽象方法,你必须在你自己具体的子类中来实现这些方法。这些方法中除了onCreate()以外,都用于视图访问你的内容提供的客户端应用程序调用。 query() 从提供器中获取数据,使用参数对选择的表进行查询,返回行和列的值,并且对结果进行排序。以Cursor对象的形式返回的数据。 insert() ...
Global site tag (gtag.js) - Google Analytics